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

 

前言

 本次使用的为树莓派3b+,配置的是硬件串口(/dev/ttyAMA0),如何配置串口见该文章

(17条消息) 树莓派3b+串口配置_唐传林的博客-优快云博客_树莓派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'))

效果

树莓派串口回显

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值