8.4.1 USART发送应用:时钟数据传输设计
1.任务要求
利用USART接口,将RTC数据上传到计算机,计算机通过串口调试助手软件实现接收,每1 s刷新发送1次,同时外接LCD1602显示RTC的内容。设计电路、程序,并通过Proteus完成仿真和调试。
2.硬件设计
本例中用串口2与计算机的串口相连。目前,计算机常用的串行通信接口是USB接口,大多数已不再将RS-232C串行接口作为标配。为了能使MCU与计算机之间实现通信,常采用CH340将USB总线转串口UART,采用USB总线模拟UART通信。USB总线转UART电路的串口连接电路图如图8.12所示,USART2的TXD与CH340的RXD相连,RXD与CH340的TXD相连,CH340的D+和D-与计算机USB接口相连。

图8.12 USB总线转UART电路串口连接电路图
3.软件设计
USART采用串口2,TXD对应的引脚是PA2,RXD对应用引脚是PA3。USART配置成异步工作模式,设置波特率为115 200 bit/s,数据位为8位,无校验位,停止位为1位;工作模式采用发送和接收模式;无中断,无DMA;设置系统时钟为8 MHz,无倍频,PCLK1和PCLK2均为8 MHz。RTC的配置与第7章应用案例部分一样,采用LSI时钟,设置年、月、日、时、分、秒,具体可自行设置。USART配置如图8.13所示。

图8.13 USART配置(https://www.daowen.com)
通过STM32CubeMX生成工程文件,分别生成USART2的初始化代码、GPIO的初始化代码、RTC的初始化代码。用户只需要完成“main.c”文件中主函数的部分代码编写,RTC的程序参考第7章应用案例的代码,参考程序如下。

4.仿真与调试
在Proteus中绘制仿真电路图,将PC0~PC10与LCD1602相连,USART2的TXD(PA2)和RXD(PA3)与Virtual Terminal(虚拟串口)的RXD、TXD交叉相连,加载.hex文件到工程中,在LCD1602中显示时、分、秒,同时在Virtual Terminal中每隔一秒刷新一次显示数据,仿真电路图与调试效果如图8.14所示。
硬件开发板与计算机可以通过USB相连,计算机运行串口调试助手,配置好串口的端口、波特率、数据位、校验位、停止位,实现数据通信,串口调试助手调试图如图8.15所示。

图8.14 仿真电路图与调试效果

图8.15 串口调试助手调试图