树莓派使用串口通信(硬件串口)
树莓派3B+
树莓派3B+内置了一个称之为硬件串口(/dev/ttyAMA0),一个称之为mini串口(/dev/ttyS0)。在树莓派3代中,由于板载蓝牙模块,硬件串口被默认分配给与蓝牙模块通信了,而把那个mini串口默认分配给了排针引出的GPIO(14,15)。
树莓派的串口默认为串口终端调试使用,如要正常使用串口则需要修改树莓派设置。关闭串口终端调试功能后则不能再通过串口登陆访问树莓派,只能通过ssh或者远程桌面连接树莓派后进行控制。
查看默认值
serial0是GPIO引脚对应的串口,serial1是蓝牙对应的串口。如图所示,serial0(GPIO串口)默认使用的是ttyS0(mini串口),serial1(蓝牙)使用的是ttyAMA0(硬件串口)。
关闭串口访问
可以通过桌面的设置,在Raspberry Pi Configuration中将Serial Port设置为Enable,但是Serial Console都要Disable,即关闭串口控制台功能,然后重启树莓派。
或者通过命令行:
sudo nano /boot/cmdline.txt
删除console=serial0,115200,也就是关闭console,其余保持不变.
蓝牙和GPIO交换串口
为了在树莓派3中通过GPIO使用高性能的硬件串口,我们必须将分配给蓝牙使用的硬件串口与分配给IO排针的mini串口进行对换,这必然会使得蓝牙模块的功能受到影响,不过这里我们不使用蓝牙。
这一步很简单,只需要在/boot/config.txt加上
dtoverlay=pi3-miniuart-bt
然后重启~sudo reboot
。
重启之后查看映射:
可以发现,GPIO连接了ttyAMA0硬件串口,蓝牙连接了ttys0 mini串口。
硬件连接
这里我使用的是USB TO TTL模块,将树莓派的串口通过USB TO TTL模块连接到电脑的usb。
minicom安装与启动
minicom是linux下的一个串口调试工具。
安装minicom
sudo apt-get install minicom #安装minicom
启动minicom之前,得先配置一下,不然没法在minicom下输入。
(1)sudo minicom -s
(2)进入Serial port setup界面
(3)时F - Hardware Flow Contorl项为Yes,按下F键就修改为No了,即关闭硬件流控,回车回到上级菜单
(4)选择| Save setup as dfl |,然后选择 Exit from Minicom 重启minicom,这样就可以输入命令了。
启动minicom
注意这时候启动的硬件串口
sudo minicom -D /dev/ttyAMA0 -b115200 #启动minicom
启动之后,Ctrl-A -> Z -> E
这时候,就可以输入了。
测试串口收发,成功。同时可以看到图中开启的是硬件串口。
一键三连加关注,村头带你不迷路!哈哈哈