Python 使用 Serial 库与 STM32 进行串口通信实战

一颗松果
一颗松果
发布时间:2026-10-13 | 5人浏览过
原创

本文介绍如何利用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 串口通信的核心要点。希望本文内容能为您的开发提供参考,欢迎支持本站获取更多技术分享。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表