树莓派串行通信(收发回显)

 

前言

 本次使用的为树莓派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'))

效果

树莓派串口回显

你可能感兴趣的:(python)