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

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

一、前言

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

二、添加DMA驱动

在之前的uart0_init()函数中添加DMA的初始化,如下: