USART(Universal Synchronous Asynchronous Receiver/Transmitter),即通用同步/异步收发器,是一种常用的串行数据传输协议。在调试程序时使用printf函数来打印串口信息,对分析问题非常方便。 以下我们结合国民技术N32G43x 库例程分析 N32G435 MCU USART 如何实现printf 打印log。
1. 例程目的:串口打印“USART Printf Example: retarget the C library printf function to the USART”
2. 进入Main函数会先调用时钟和GPIO函数
3. 时钟配置
4. GPIO配置:USART工作在全双工模式下,发送口TX要配置成复用推挽输出,接收口RX要配置成浮空输入或上拉输入。
5. USART PIN定义:PA9配置为 USART1_Tx,PA10配置为 USART1_Rx
6. 配置USART 参数如下:
1. 例程目的:串口打印“USART Printf Example: retarget the C library printf function to the USART”
2. 进入Main函数会先调用时钟和GPIO函数
3. 时钟配置
4. GPIO配置:USART工作在全双工模式下,发送口TX要配置成复用推挽输出,接收口RX要配置成浮空输入或上拉输入。
5. USART PIN定义:PA9配置为 USART1_Tx,PA10配置为 USART1_Rx
6. 配置USART 参数如下:
- 波特率115200
- 8 bit数据位
- 1 bit停止位
- 无奇偶校验控制
- 无硬件流控制(RTS和CTS信号)
- 接收和发送使能
7. 在C库中printf()等输出流函数都是通过fputc()这个函数实现的,所以我们通过重映射的方式,修改这个函数的定义使它输出在N32G43x MCU的寄存器中,便可以实现使用printf()函数在N32G43x MCU串口上输出数据的功能。
由于我们使用了printf C库函数,需要在MDK的Target面板中选中Use MicroLIB,将C库添加到工程中。
8. 编译无误后下载到N32G43x 开发板
9. 通过USB转TTL连接N32G43x开发板与 PC 终端串口调试助手, 配置好串口参数并打开, 然后给N32G43x开发板上电,可以看到串口调试助手输出“USART Printf Example: retarget the C library printf function to the USART”,实现串口数据打印。
国民技术 N32G43x MCU相关博文:
参考资料:
- UM_N32G43x系列用户手册0
- N32G43x_Library.1.0.0
更多精彩内容欢迎参阅大大通网站https://www.wpgdadatong.com/cn 和大大通微信公众号
评论