GD32F103串口DMA收发(空闲中断 + DMA)文章来源:https://www.toymoban.com/news/detail-651780.html
此前写了一篇DMA串口收发的文章,参照的是GD官方例程,虽然实现了串口数据的传输,后面在实际项目应用时发现还是有点问题,不能完全按照预想的方式进行数据传输和处理,经过不断的调试,现更新如下,特此记录。
GD32F103串口DMA收发(空闲中断 + DMA)
1. 串口IO初始化
这次使用的是GD32F103CBT6串口2,对应Pin脚PB10、PB11。
代码如下:文章来源地址https://www.toymoban.com/news/detail-651780.html
uint8_t rxbuffer[84];
uint8_t txbuffer[84] = {
0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a};
#define USART0_DATA_ADDRESS ((uint32_t)&USART_DATA(USART0))
#define USART2_DATA_ADDRESS ((uint32_t)&USART_DATA(USART2))
static void usart_config(uint32_t baudval)
{
//USART0
rcu_periph_clock_enable(RCU_GPIOA); //enable GPIO clock, PA9/PA10
rcu_periph_clock_enable(RCU_AF);
rcu_periph_clock_enable(RCU_USART0); //enable USART clock
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9); //PA9--TX0
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10); //PA10--RX0
usart_deinit(USART0);
usart_baudrate_set(USART0, baudval);
usart_word_length_set(USART0, USART_WL_8BIT);
usart_stop_bit_set(USART0, USART_STB_1BIT);
usart_parity_config(USART0, USART_PM_NONE);
usart_hardware_flow_rts
到了这里,关于GD32F103串口DMA收发(空闲中断 + DMA)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!