第四章主要讨论了STM32F10x系列芯片中通用同步异步收发器(USART)的应用。USART是一种广泛使用的通信接口,它允许全双工数据交换,适应多种工业标准,如异步串行通信、LIN(局部互联网络)、智能卡协议、IrDA(红外数据协会)SIR ENDEC规范,以及调制解调器的CTS/RTS功能。通过其分数波特率发生器,USART可以提供广泛的波特率选择,最高可达4.5Mbps,并支持8位或9位数据字长度,以及1或2个可配置的停止位。
USART的主要特性包括:
1. 全双工异步通信能力,允许同时进行发送和接收。
2. 使用NRZ(非归零)标准格式。
3. 分数波特率发生器系统,提供灵活的波特率设定。
4. 可配置的智能卡模拟功能,符合ISO7816-3标准的异步智能卡协议。
5. 单线半双工通信模式,适合简单的双向通信。
6. 多处理器通信模式,支持地址匹配和静默模式。
7. 硬件DMA支持,提高数据传输效率。
8. 提供多种错误检测标志,如溢出、噪音、帧错误和校验错误。
9. 支持CTS、LIN断开符检测等多种中断源。
在异步模式下,USART通过RX和TX引脚进行通信,数据帧包括起始位、数据位、停止位,并使用分数波特率发生器来精确控制波特率。在同步模式下,USART可以使用额外的时钟信号(SCLK)进行数据同步。而在IrDA模式中,需要IrDA_RDI和IrDA_TDO引脚进行红外数据传输。硬件流控模式下,nCTS和nRTS引脚用于控制数据发送和接收。
发送器部分,根据M位的状态发送8位或9位数据,启动位和可配置的停止位在每个字符前后发送。启用发送功能(TE位)后,数据将从TX引脚移出,同时发送时钟脉冲。需要注意的是,在数据传输过程中不能复位TE位,否则可能导致数据丢失。
在配置USART时,用户可以根据应用需求设置波特率、数据位长度、停止位数量、校验控制等参数,以实现高效且可靠的串口通信。此外,USART还具有强大的错误检测和中断管理功能,可以有效地处理通信过程中的异常情况。总的来说,STM32F10x系列的USART功能强大,能满足多种串行通信需求。