前言(本教程适用于树莓派3B)
有两个串口
硬件串口(/dev/ttyAMA0) 有单独的波特率时钟源,性能高、可靠
mini串口(/dev/ttyS0) 性能低,功能简单,没有专用时钟源而是由CPU内核时钟提供,波特率会受内核时钟的影响。
由于板载蓝牙模块,因此硬件串口默认分配与蓝牙模块通信,而mini串口默认分配给GPIO。如果我们想与外接串口模块进行通信,需要修改串口映射。
而且GPIO引出的串口默认是用来做控制台使用的,因此还需禁用控制台功能
外接TTL转RS485模块
查看串口映射
ls -l /dev
serial0 ———————— GPIO
serial1 ———————— 蓝牙模块
修改串口映射
sudo vim /boot/config.txt
在文件最后添加
dtoverlay=pi3-miniuart-bt
重启树莓派,再次查看串口映射
串口映射交换,硬件串口(/dev/ttyAMA0)映射到了GPIO。
禁用控制台功能
sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service
查看波特率
sudo stty -F /dev/tt