小熊派gd32f303学习之旅(4)—使用DMA实现串口打印

小熊派gd32f303学习之旅(4)—使用DMA实现串口打印

一、前言

在上一篇文章(串口打印第一个Hello world程序)我们使用重定义fputc函数的方式实现了串口打印,但是这种方式本质上是在循环输出字符,比较浪费CPU资源。
解决这个问题的方法就是使用DMA进行发送。
通过串口gd32f30x的用户手册,可以看到,uart0的发送使用的的DMA0的通道3

小熊派gd32f303学习之旅(4)—使用DMA实现串口打印

然后添加几个全局变量如下:

自定义uart0打印函数:

因为使用到了DMA中断,使用编写DMA0通道3中断服务函数

三、修改主函数

将主函数的while循环修改为如下所示

四、功能验证

编译链接烧录到小熊派开发板,通过串口调试助手可以看到成功打印:

小熊派gd32f303学习之旅(4)—使用DMA实现串口打印

五、附录

完整代码我存放在码云,可以查看:https://gitee.com/william_william/BearPi-GD32F303RGT6.git
上一篇:小熊派gd32f303学习之旅(3)—串口打印第一个Hello world程序
下一篇:小熊派gd32f303学习之旅(5)—使用DMA和空闲中断实现串口接收

来源:Willliam_william

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年8月22日
下一篇 2020年8月22日

相关推荐