python串口使用

博客围绕Python串口数据展开,介绍了串口收发的数据类型为bytes,设置并打开串口的方式,发送数据用write()函数,接收数据用read_all()和read(len)函数。还阐述了Python 2和Python 3在处理bytes和str上的区别,最后提醒检查波特率以避免接收数据异常。

python串口数据

python串口收发的都是bytes类型数据,即使是字符串,也会编码器后进行传输

设置串口,并打开

ser1 = serial.Serial(port='/dev/ttyUSB1', baudrate=115200, bytesize=8, parity='N', stopbits=1)

这样创建一个串口对象后,串口直接自动打开

python中发送数据使用write()函数

 s.write(data) #不指明编码方式,直接发送
 s.write(data.encode('utf-8'))  # utf-8 编码发送
 s.write(data.encode('hex'))  # 转成16进制后发送

python中接收数据使用read_all()和read(len)函数

 read_all()会读取缓冲区内的数据
 read(len)读取len长的数据

python2和python3之间的区别

原文链接

bytes是Python 3中特有的,Python 2 里不区分bytes和str。
bytes是byte的序列,而str是unicode的序列。

python2中:
str 使用encode()方法转化为 bytes
bytes通过decode()转化为str

在python3中:

常见容易忽略的错误

串口接收到数据很乱,更预计差别很大,首先检查波特率对不对

### 实现Python串口通信 对于希望利用Python进行串口通信的应用场景,可以采用`PySerial`库。该库封装了不同操作系统下对串行端口的访问方法[^2]。 #### 安装 PySerial 库 为了能够使用此库,在本地环境中需先安装它。可以通过pip工具轻松完成这一操作: ```bash pip install pyserial ``` #### 创建简单的串口读写脚本 下面是一个基本的例子,展示了怎样打开一个特定名称的串口设备,并向其发送数据以及接收回应的数据包: ```python import serial ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1) # 打开指定路径下的串口文件,设置波特率为9600bps if ser.isOpen(): print("成功打开串口") else: print("无法打开串口") try: while True: input_str = input("请输入要发送的内容:") if input_str == 'exit': break ser.write(input_str.encode()) # 发送字符串编码后的字节流给串口设备 response = ser.readall() # 尝试读取所有可获得的数据直到超时为止 if len(response)>0 : print(f"收到回复:{response.decode()}") # 如果有接收到任何东西,则解码并打印出来 finally: ser.close() ``` 上述代码片段演示了一个交互式的命令行界面,允许用户手动输入消息并通过选定的串行接口传输这些消息;同时也会监听来自同一通道的消息并将它们显示回屏幕上。 #### 配置参数说明 当实例化 `serial.Serial()` 对象时,除了提供必要的端口名外,还可以配置其他重要属性如波特率(baudrate),校验位(parity),停止位(stopbits)等,默认情况下大多数选项都有合理的预设值,但在实际应用中可能需要调整以匹配目标硬件的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值