树莓派串⼝通信USB串⼝通信常⽤串⼝命令
树莓派串⼝通信 USB串⼝通信
⽂章⽬录
如果不知道树莓派怎么使⽤USB串⼝通信的,欢迎浏览我的另⼀篇博客⽂章:
这篇⽂章就以USB串⼝为例,简单的说下串⼝通信时常⽤的⼏个命令。注意:代码均为Python编写。
个⼈博客原址:
准备
树莓派4
两个CH340
串⼝助⼿
发送数据
1. 最基础的发送数据⽅式
'''
ser.write(data) # 发送数据data,data为字节型
'''
import serial
ser = serial.Serial("/dev/ttyUSB0",115200)
ser.flushInput()# 清除缓存
ser.write("LightningMaster\r\n".encode())# 发送数据 \r\n可以实现换⾏ encode()默认是'utf-8'
运⾏这个代码就可以在串⼝助⼿上收到数据。
2. 发送中⽂
python怎么读取串口数据import serial
ser = serial.Serial("/dev/ttyUSB0",115200)
ser.flushInput()# 清除缓存
ser.write("闪电⼂教主\r\n".encode('gb2312'))# 发送数据 \r\n可以实现换⾏
3. 发送数据包 ⼗六进制
import serial
import struct
ser = serial.Serial("/dev/ttyUSB0",115200)
ser.flushInput()# 清除缓存
pack = struct.pack('BBBB',0xaa,6,7,0x55)# 将数据打包格式是unsigned char
ser.write(pack)
这个地⽅使⽤到了struct.pack,具体有啥作⽤可以⾃⾏百度去看看,我在这就不多说了。这⾥的作⽤就是将数据打包,返回格式是unsigned char 的字节串。
可以使⽤这个函数给数据加上“头”“尾”之类的东西。
接收数据
'''
ser.inWaiting() # 可以获取还未读出的数据
'''
import serial
import struct
import time
ser = serial.Serial("/dev/ttyUSB0",115200)
ser.flushInput()# 清除缓存
while True:
count = ser.inWaiting()# 获取还有多少字符未读
if count !=0:
data = ad(count)# 读取数据存到data中
print(data)# 打印接受到的数据
time.sleep(0.1)# 系统等待
运⾏代码,使⽤串⼝助⼿发送数据,可以在树莓派中看到返回值。
可以看到树莓派成功接收到了数据。
如果想把b’ '去掉可以使⽤代码
print(data.decode('utf-8'))
接收中⽂的话需要使⽤下⾯的代码
print(data.decode('gb2312'))
具体为什么使⽤encode和decode,可以⾃⾏查阅Python相关资料。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论