版权声明:本文为博主原创文章,转载请注明出处。 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
如有错误之处,请评论或者私信指出,非常感谢

版权声明:本文为YaoYing原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/YaoYing/p/12108101.html