void usart_receive_data(uint8_t ucch)
{usart_data_receive(UART3);
}
void usart_send_data(uint8_t ucch)
{usart_data_transmit(UART3,(uint8_t)ucch);while(usart_flag_get(UART3,USART_FLAG_TBE) == RESET);
}
这是在c文件中定义函数,之后在h文件中声明,
#ifndef _BSP_USART_H
#define _BSP_USART_H
#include "gd32f4xx.h"
#include "systick.h"
void usart_gpio_config(void);
void usart_receive_data(uint8_t ucch);
void usart_send_data(uint8_t ucch);
void usart_send_string(uint8_t *ucstr);
#endif
之后修改波特率,直接修改数比较麻烦,可以通过设定一个参数,也就是修改固件库中的内容,
刚才自以为看懂了,等自己写的时候发现也不知道怎么弄。所以亲身敲一下代码对内容的理解还是很有帮助的。
14.立创·开发板GD32教程:串口通信之串口发送数据_哔哩哔哩_bilibili
24.7.14
接收有三种方式,分为中断接收,DMA 串口接收,串口DMA接收在串口检测到有数据输入的时候,直接让DMA往准备好的存储器中搬运接收到的数据,在这个过程中,cpu还是处理自己的事情,在一帧数据传输完成后,通过空闲中断告诉主任务一帧数据已经传输完毕,主任务再对接收得到的数据进行响应处理,整个过程程序只会触发一次中断,就是DMA搬完数据后通知cpu的那一次中断。