您的位置:首页 >Linux使用python调用串口方式
发布于2026-05-25 阅读(0)
扫一扫,手机访问
想在Ubuntu系统上通过/dev/ttyUSB0这个串口设备收发数据?用Python配合pyserial库来实现,是个既简单又高效的选择。

这套方案上手门槛不高,能应对绝大多数基础的串行通信需求。下面就来拆解一下具体的实现步骤和代码。
万事开头先装库。你得确保系统里已经安装了pyserial,这是Python生态里处理串口通信的“标配”工具。
pip install pyserial
库装好了,接下来就是写代码。下面这个脚本演示了如何打开/dev/ttyUSB0串口,配置好波特率等参数,并实现数据的收发循环。
import serial
import time
def open_serial(port, baud_rate):
"""打开串口并配置基本参数"""
try:
ser = serial.Serial(port, baud_rate, timeout=1,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS)
if ser.is_open:
print(f"Serial port {port} opened successfully")
return ser
except Exception as e:
print(f"Failed to open serial port: {e}")
return None
def read_from_serial(ser):
"""从串口读取数据"""
try:
data = ser.readline() # 读取一行数据
if data:
print(f"Received: {data.decode().strip()}")
except Exception as e:
print(f"Failed to read data: {e}")
def write_to_serial(ser, data):
"""向串口发送数据"""
try:
ser.write(data.encode())
print(f"Sent: {data}")
except Exception as e:
print(f"Failed to send data: {e}")
def main():
port = "/dev/ttyUSB0"
baud_rate = 9600
# 打开串口
ser = open_serial(port, baud_rate)
if ser and ser.is_open:
try:
# 循环接收和发送数据
while True:
read_from_serial(ser)
time.sleep(1)
write_to_serial(ser, "Hello from Python!")
time.sleep(1)
finally:
ser.close()
print("Serial port closed")
if __name__ == "__main__":
main()
open_serial函数负责连接指定串口,并完成波特率等关键参数的配置。read_from_serial函数从串口读取一行数据,解码后打印出来。write_to_serial函数则负责将字符串编码后发送到串口。main函数里的循环展示了如何持续地进行读取和发送操作。/dev/ttyUSB0这个设备文件。如果遇到权限错误,要么用sudo提权运行脚本,要么把你的用户加到dialout用户组里。这个例子虽然简单,但已经搭建起了使用Python和PySerial进行串口通信的基本框架。
总的来说,在Linux环境下用Python操作串口,pyserial库提供了清晰、稳定的接口。从安装到编写收发循环,整个过程逻辑清晰,是入门嵌入式通信或设备调试的一个不错起点。
上一篇:虚拟环境:别让包打架
下一篇:dmesg中的电源管理信息解读
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8