配置串口通讯
从树莓派的相关资料我们可以看到,树莓派有两个串口可以使用,一个是硬件串口(/dev/ttyAMA0),另一个是mini串口(/dev/ttyS0)。硬件串口有单独的波特率时钟源,性能好,稳定性强;mini串口功能简单,稳定性较差,波特率由CPU内核时钟提供,受内核时钟影响。
树莓派(3/4代)板载蓝牙模块,默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给GPIO串口 TXD0、RXD0。
首先运行命令
ls /dev/ser* -al
查看默认串口分配
1、关闭串口控制台
设置树莓派,在Raspberry Pi Configuration中将Serial Port设置为Enable,但是Serial Console都要Disable,即关闭串口控制台功能,然后必须重启树莓派生效。
也可以在命令行中输入下面命令进行配置:
sudo raspi-config
(1)上面串口的开启的步骤中,是在Raspberry Pi Configuration 界面中,将Serial Port选项ENable,也可以直接修改/boot/config.txt文件。
sudo vim /boot/config.txt
enable_uart=1即为Serial Port Enable串口开启,enable_uart=0即为Serial Port Disable串口关闭。
(2)上面关闭串口控制台功能,是在Raspberry Pi Configuration 界面中,将Serial Console选项Disable,可以直接修改/boot/cmdline.txt文件。
sudo vim /boot/cmdline.txt
cmdline.txt修改前
cmdline.txt修改后
去掉了“console=serial0,115200”,即Disable了串口控制台功能。
2、设置硬件串口为GPIO串口
接着将串口配置为我们的GPIO串口,对输入sudo nano/boot/config.txt命令,将下面两行内容添加到最后:
dtoverlay=pi3-miniuart-bt force_turbo=1
修改后保存并退出,内容如下图片所示:
重启树莓派,运行ls /dev/ser* -al
,查看两个串口已经互换了位置。
3、安装minicom
1.minicom安装
sudo apt-get install minicom
2.minicom启动
minicom -D /dev/ttyAMA0 -b 115200#-b代表波特率,-D代表端口,/dev/ttyAMA0 类似于windows中的COM
4、minicom测试
连接USB转串口模块,接到树莓派端口上,发送数据,观察树莓派接收
5、使用pyserial
minicom仅满足调试用途,如果需要编程解决问题那么python的serial扩展库——pyserial则是一个不错的选择。
安装pyserial扩展库有很多种方法,可使用pip或者easy_install安装,也可以直接选择apt-get工具安装。
若使用apt-get工具安装,可输入以下指令
sudo apt-get install python-serial
2.串口回显程序
非常简单的一个串口程序,树莓派通过串口返回接收的内容。
import serialimport time# 打开串口ser = serial.Serial("/dev/ttyAMA0", 115200)def main():while True:# 获得接收缓冲区字符count = ser.inWaiting()if count != 0:# 读取内容并回显recv = ser.read(count)ser.write(recv)# 清空接收缓冲区ser.flushInput()# 必要的软件延时time.sleep(0.1)if __name__ == '__main__':try:main()except KeyboardInterrupt:if ser != None:ser.close()
如果觉得《【树莓派】树莓派配置串口通讯》对你有帮助,请点赞、收藏,并留下你的观点哦!