1.串口的基本概念
在 STM32 的参考手册中,串口被描述成通用同步异步收发器(USART),它提供了一种
灵活的方法与使用工业标准 NRZ 异步串行数据格式的外部设备之间进行全双工数据交换。
USART 利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单
线通信,也支持 LIN(局部互联网),智能卡协议和 IrDA(红外数据组织)SIR ENDEC 规
范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。还可以使用 DMA 方式,实
现高速数据通信。
USART 通过 3 个引脚与其他设备连接在一起,任何 USART 双向通信至少需要 2 个引
脚:接受数据输入(RX)和发送数据输出(TX)。
RX:接受数据串行输入。通过过采样技术来区别数据和噪音,从而恢复数据。
TX:发送数据输出。当发送器被禁止时,输出引脚恢复到它的 I/O 端口配置。当发送
器被激活,并且不发送数据时,TX 引脚处处于高电平。在单线和智能卡模式里,此 I/O 口
被同时用于数据的发送和接收。
2.串口的如何工作的
一般有两种方式:查询和中断。
(1)查询:串口程序不断地循环查询,看看当前有没有数据要它传送。如果有,就帮
助传送(可以从 PC 到 STM32 板子,也可以从 STM32 板子到 PC)。
(2)中断:平时串口只要打开中断即可。如果发现有一个中断来,则意味着要它帮助
传输数据——它就马上进行数据的传送。同样,可以从ÆPC 到 STM3 板子,也可以从
STM32 板子到 PC。
3.串口的硬件连接
我用的奋斗 STM32 V3 开发板拥有二路 RS-232接口,CPU的 PA9-US1-
TX(P68)、PA10-US1-RX(P69)、PA9-US2-TX(P25)、PA10-US2-RX(P26)通过
MAX3232实现两路 RS-232接口,分别连接在 XS5和 XS17接口上。ÆÆUSART1在系统存
储区启动模式下,将通过该口通过 PC 对板上的 CPU 进行 ISP,该口也可作为普通串口功
能使用,JP3,JP4的短路冒拔去,将断开第二路的 RS232 通信,仅作为 TTL通信通道。
4.编程实例
我们要对串口进行操作,首先要将 STM32 的串口和 CPU 进行连接。在 Windows 操作
系统中,有一个自带的系统软件叫“超级终端”。VISTA 以上的操作系统去掉了这个软件,
不过可以从 XP 的系统中,复制“hypertrm.dll”和“hypertrm.exe”到“windows/system32”文件夹
下,然后双击运行 hypertrm.exe,就可以看见超级终端的运行界面了。
运行超级终端以后,会弹出“连接描述”,输入名称和选择图标,这个地方随便写个什
么名称都可以。然后弹出“连接到”设置,在“连接时使用”选择你自己 PC 和 STM32 连接的