版權聲明:本文為博主原創文章,轉載請注明出處。 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
如有錯誤之處,請評論或者私信指出,非常感謝