那么楼主先分享下所做的BspUsart文件的头文件,这个通过F350的两个串口。都可以利用同样的接口进行初始化以及发送接口。
在这里说明下USART0_TDATA_ADDRESS宏定义的意思,以此类推可以分析下其他三个的宏定义。F350的两个串口的存储器映射地址为下图:
由此我们可以知道发送数据寄存器的地址即是0x40013828。这样的宏定义的意义在于,如果不同平台下的偏移地址不同,我们可以方便修改参数。
USART0_MAX_SEND_LEN是缓冲大小,再者我们在定义发送缓冲区大小的时候,可以通过宏定义来定义大小,这样同样也可以方便修改参数。
下面的一些宏上,比如COM_DMAn是用来定义DMA所使用的通道数量,这里是参考官方的编程思路,我觉得不错,也照样采取。这样在初始化的时候,可以通过数组方式查找相对应的DMA通道,比如在初始化中,传参是串口1,则使用COM1_DMA,也就是DMA通道3。
下面那些接口,也相对做了通用接口,以及两个重定向printf发送接口。均采用DMA进行发送