串行口(英文:Serial port,又称COM(Communication port)或RS-232串行口),是计算机外部设备连接到计算机主板上的一种通信接口,而通俗地讲就是电脑主机和其他串行设备进行数据传输的接口,例如: 扫描仪、调制解调器、LCD显示屏、微控制器等等。串口一般都具备接收数据(RX)和发射数据(TX)的功能,即可以双向传输数据。
通常情况下,STM32单片机会与PC进行串口通信。STM32作为串口通信的主要控制器,需要将通信数据通过串口传输给PC。而PC则通过串口接口去解析这些数据。
在 STM32 和 PC 之间进行串口通信的时候,使用的通信协议一般为 UART(Universal Asynchronous Receiver/Transmitter),它是计算机用于串行通信的一种通信接口,是一种异步传输模式。在串口通信中使用的其实是 TTL 电平准则,其正常电压范围为0 到 3.3V。
STM单片机或其他开发板可以使用多种不同的串口芯片进行选择,在选择哪种芯片以及芯片的工作模式时,需要考虑一些因素,例如传输距离、通信带宽、工作频率、兼容性等等。如果通信距离不远且传输速度要求不高,可以选择使用 USB 转串口的方式进行通讯。而如果需要高速的数据传输和长距离的通信,则选用 TTL/RS232/RS485 转换芯片通常是更好的选择。
在STM32与PC之间进行串口通信,需要在STM32的程序中编写串口发送函数,并在PC端编写串口接收程序。在STM32使用调用 HAL 库函数进行配置,开启STM32的串口功能,并初始化波特率、数据位、校验位和停止位等参数。在实现串口通信时,还需要注意数据格式一致性的问题,不同格式的数据会导致通讯失败。实际开发中,一般会使用一些通用的通讯协议,如Modbus,CAN等协议。