版权声明:本文为博主原创文章,转载请注明出处。 https://www.cnblogs.com/YaoYing/p/12108101.html
前言(本教程适用于树莓派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/ttyAMA0
因为系统默认波特率是115200,因此我们需要把波特率修改为9600
修改波特率
从cmdline.txt
中删除console=serial0,115200
字段
sudo vim /boot/cmdline.txt
修改后文件内容如下
console=tty1 root=PARTUUID=d9b3f436-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
重启树莓派,再次查看波特率
所有配置完成,可以用树莓派与其它硬件进行串口通信了。
更新日期20191227
如有错误之处,请评论或者私信指出,非常感谢