Python 使用 Serial 库与 STM32 进行串口通信实战
本文介绍如何利用Python的Serial库与STM32F103单片机建立串口通信。详细说明了Windows下COM端口编号规则、波特率及数据位默认配置的重要性,并重点解析了发送与接收字符串时记录长度以防止阻塞的关键技巧,帮助开发者快速实现稳定的嵌入式串口交互。
Python 与 STM32 串口通信概述
Python 以其简洁高效的特性,在开发工具中表现优异。本文演示如何使用 Python 的 Serial 库与控制台进行串口通信,底层硬件选用 STM32F103 单片机。经过约一小时的调试,通信成功建立,充分展现了 Python 在嵌入式交互领域的强大能力。
Windows 串口端口编号规则
在 Windows 环境下配置串口时需注意端口标识规则:若使用 COM 前缀标注,端口序号从 1 开始计数;若直接指定数字序号,则从 0 开始。这一细节直接影响代码中端口参数的设定。
串口参数默认配置说明
对于大多数单片机或嵌入式系统,串口通信配置较为简单。在 Python 中,只需明确指定串口号和波特率,其余参数保持默认即可。通常嵌入式串口无需额外配置,仅需关注停止位(默认 1 位)和数据位(默认 8 位),这些均符合 Python 的默认设置。
字符串收发与防阻塞处理
读取字符串数据时需特别注意:向串口发送字符串后,若需回显并在 PC 端显示,必须在发送时记录字符串长度。随后依据该长度读取对应字节数,否则可能导致读取阻塞,致使串口通信失败。作者曾在此处多次尝试失败,建议务必注意此细节。
完整通信代码实现
__author__ = 'freedom'
import serial
port = 0
ser = serial.Serial()
ser.setPort(port)
print ser.portstr
baudrate = 115200
ser.setBaudrate(baudrate)
ser.open()
print ser.isOpen()
print ser
while(1):
datainput = raw_input("Please input the character:\n")
n = ser.write(datainput)
data = ser.read(n)
print data
总结
以上即为 Python 实现与 STM32 串口通信的核心要点。希望本文内容能为您的开发提供参考,欢迎支持本站获取更多技术分享。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









