> 文章列表 > RT-Thread GD32F4xx Usart 驱动之DMA接收

RT-Thread GD32F4xx Usart 驱动之DMA接收

RT-Thread GD32F4xx Usart 驱动之DMA接收

目录

  • 1、直接测试dma接收问题
  • 2、修改drv_usart.c驱动
    • 2.1 增加串口的DMA通道
    • 2.2 在gd32_uart 结构中添加DMA相关内容
    • 2.3 增加DMA收发函数
  • 3、应用测试程序
  • 4、测试结果及相关问题
    • 4.1 问题:FinSH控制台串口初始化失败
    • 4.2 测试结果OK
  • 5、RT-Thread函数调用过程梳理
  • 6、参考文档

1、直接测试dma接收问题

  在gd32450z-eval BSP中的drv_usart.c驱动中其实并没有提供dma部分的驱动代码。但在驱动最上面的说明信息中写着2016-05-28 add DMA Rx mode ,于是就直接测试了一下,发现不行,在rt_device_open(serial, RT_DEVICE_FLAG_DMA_RX); 时会返回错误:RT_EIO 。经确认设备应该未支持DMA_RX功能。所以还是需要在usart的驱动中添加dma功能。

猪八哥时尚生活