Raspberry Pi 使用python实现USB串口发送16进制数据
目录
在很多时候,我们需要通过USB的串口与外部设备进行通信,凌顺实验室(lingshunlab.com)在此记录一个简单的Python例子,方便查阅使用。
代码实现
# by lingshunlab.com
import serial as ser
import time
se = ser.Serial("/dev/ttyUSB0", 115200, timeout=1)
datas = 'AB CD 14 F0 00 50 F0 00 50 F0 00'
toBytes=bytes.fromhex(datas) # 把字符形式的数据转换成一组16进制数据
result=se.write(toBytes) # 从串口写入数据
常见问题
1,遇到 No module named 'serial
的情况,则需要安装pyserial,在命令行输入以下命令进行安装即可:
pip install pyserial
or
pip3 install pyserial # python3 使用
2,有时候可能会遇到USB串口的权限问题,提示‘[Errno 13] could not open port /dev/ttyUSB0: [Errno 13] Permission denied: \'/dev/ttyUSB0\'’,则需要更改设备的权限,在命令行输入命令即可:
sudo chmod 777 /dev/ttyUSB0
此时已经修改权限为可读可写可执行,但是重启系统之后需要重新设置,比较麻烦,也可通过以下命令设置永久有效:
sudo usermod -aG dialout lingshunlab
其中 lingshunlab
是用户名,需要你修改成你系统的用户名。此命令意思是把用户 lingshunlab 加入到 dialout 用户组。