本次使用的为树莓派3b+,配置的是硬件串口(/dev/ttyAMA0),如何配置串口见该文章
(17条消息) 树莓派3b+串口配置_唐传林的博客-CSDN博客_树莓派3b+接口
import serial
from time import sleep
# 串口对象
ser = serial.Serial("/dev/ttyAMA0", timeout=0.5)
def serial_init():#对串口的参数进行配置
ser.port="/dev/ttyAMA0"
ser.baudrate=115200
ser.bytesize=8
ser.stopbits=1
ser.parity="N"#奇偶校验位
if(ser.isOpen()):
print("串口打开成功!")
else:
print("串口打开失败!")
def serial_close():
ser.close()
if(ser.isOpen()):
print("串口关闭失败!")
else:
print("串口关闭成功!")
def datareceive() -> bytes: # 表示返回值为bytes
size = ser.inWaiting() # 获得缓冲区字符数
if size != 0:
message = ser.read(size) # 读取内容并显示,返回值为bytes类型,默认一次读一个字节
ser.flushInput() # 清空接收缓存区
sleep(0.1) # 软件延时100ms,为下一次串口接收作缓冲
return bytes(message)
else:
return bytes(''.encode('utf-8'))
if __name__ == '__main__':
# 打开串口
serial_init()
while True:
message=datareceive() # 串口内容接收
if message:
ser.write(message) # 发送回PC端
def serial_init():#对串口的参数进行配置
ser.port="/dev/ttyAMA0"
ser.baudrate=115200
ser.bytesize=8
ser.stopbits=1
ser.parity="N"#奇偶校验位
if(ser.isOpen()):
print("串口打开成功!")
else:
print("串口打开失败!")
def datareceive() -> bytes: # 表示返回值为bytes
size = ser.inWaiting() # 获得缓冲区字符数
if size != 0:
message = ser.read(size) # 读取内容并显示,返回值为bytes类型,默认一次读一个字节
ser.flushInput() # 清空接收缓存区
sleep(0.1) # 软件延时100ms,为下一次串口接收作缓冲
return bytes(message)
else:
return bytes(''.encode('utf-8'))
树莓派串口回显