添加UART资源
sudo fire-config

# 在终端中输入如下命令,可以查看到UART资源:ls /dev/ttyS*
硬件连接
方式一:使用pyserial库
pyserial 库封装了对串口资源的访问方法,该库兼容多种平台对串口资源使用, 有许多平台特性相关的方法
安装pyserial
# 在板卡使用如下命令安装sudo pip3 install pyserial
使用pyserial
""" pyserial uart 测试 """import serial# 打开uart3,设置串口波特率为115200,数据位为8,无校验位,停止位为1,不使用流控制,以非阻塞模式打开串口,等待时间为3swith serial.Serial("/dev/ttyS3",baudrate=115200,bytesize=serial.EIGHTBITS,stopbits=serial.STOPBITS_ONE,parity=serial.PARITY_NONE,timeout=3,) as uart3:# 使用申请的串口发送字节流数据 "Hello World!\n"uart3.write(b"Hello World!\n")# 以非阻塞的方式打开的串口,在读取串口接收的数据时,该函数返回条件二者满足其一,一、读取到128个字节,二、读取时间超过1秒buf = uart3.read(128)# 注:Python读取出来的数据类型为:bytes# 打印原始数据print("原始数据:\n", buf)# 转码为gbk字符串,可以显示中文data_strings = buf.decode("gbk")# 打印读取的数据量及数据内容print("读取到 {:d} 个字节 , 以字符串形式打印:\n {:s}".format(len(buf), data_strings))
方式二:使用python-periphery
python-periphery 库支持的UART功能是基于Linux的UART系统实现的,所以要想利用该库使用到UART的功能, 需要板卡提供支持。像鲁班猫板卡,就可以完美使用 python-periphery 库UART通讯功能。
安装 python-periphery
# 在板卡使用如下命令安装sudo pip3 install python-periphery
periphery使用UART功能
""" python-periphery uart 测试 """from periphery import Serialtry:# 申请串口资源/dev/ttyS3,设置串口波特率为115200,数据位为8,无校验位,停止位为1,不使用流控制serial = Serial("/dev/ttyS3",baudrate=115200,databits=8,parity="none",stopbits=1,xonxoff=False,rtscts=False,)# 使用申请的串口发送字节流数据 "python-periphery!\n"serial.write(b"python-periphery!\n")# 读取串口接收的数据,该函数返回条件二者满足其一,一、读取到128个字节,二、读取时间超过1秒buf = serial.read(128, 1)# 注:Python读取出来的数据类型为:bytes# 打印原始数据print("接收的原始数据:\n", buf)# 转码为gbk字符串,可以显示中文data_strings = buf.decode("gbk")# 打印读取的数据量及数据内容print("读取到 {:d} 个字节 , 以字符串形式打印:\n {:s}".format(len(buf), data_strings))finally:# 释放申请的串口资源serial.close()
代码说明:
- 第6行,申请UART资源,占用uart3,配置对应的工作模式
- 第16行,使用申请到的串口资源发送数据
- 第19行,使用申请到的串口资源接收数据,接收方式为阻塞接收
- 第23~29行,将读取到的数据打印出来
- 第32行,释放UART资源,释放uart3
