赞
踩
从树莓派的相关资料我们可以看到,树莓派有两个串口可以使用,一个是硬件串口(/dev/ttyAMA0),另一个是mini串口(/dev/ttyS0)。硬件串口有单独的波特率时钟源,性能好,稳定性强;mini串口功能简单,稳定性较差,波特率由CPU内核时钟提供,受内核时钟影响。
树莓派(3/4代)板载蓝牙模块,默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给GPIO串口 TXD0、RXD0。
首先运行命令
ls /dev/ser* -al
查看默认串口分配
设置树莓派,在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了串口控制台功能。
接着将串口配置为我们的GPIO串口,对输入sudo nano/boot/config.txt命令,将下面两行内容添加到最后:
dtoverlay=pi3-miniuart-bt force_turbo=1
修改后保存并退出,内容如下图片所示:
重启树莓派,运行ls /dev/ser* -al
,查看两个串口已经互换了位置。
1.minicom安装
sudo apt-get install minicom
2.minicom启动
minicom -D /dev/ttyAMA0 -b 115200
#-b代表波特率,-D代表端口,/dev/ttyAMA0 类似于windows中的COM
连接USB转串口模块,接到树莓派端口上,发送数据,观察树莓派接收
minicom仅满足调试用途,如果需要编程解决问题那么python的serial扩展库——pyserial则是一个不错的选择。
安装pyserial扩展库有很多种方法,可使用pip或者easy_install安装,也可以直接选择apt-get工具安装。
若使用apt-get工具安装,可输入以下指令
sudo apt-get install python-serial
2.串口回显程序
非常简单的一个串口程序,树莓派通过串口返回接收的内容。
import serial import 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()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。