ttyAMA0是硬件接串口,ttyS0是软件串口
- 输入sudo raspi-config 打开串口,关闭串口登录,后重启raspberry.
- 查看串口映射关系 ls -l /dev 如 serial0 -> ttyS0 serial1 -> ttyAMA0
- 首先查看 /boot/overlays/ 目录下有没有 pi3-miniuart-bt-overlay.dtb 这个
文件,如果有,那么就是已经把硬件串口重新分配给了GPIO
4.关闭蓝牙服务sudo systemctl disable hciuart。 - 编辑/boot/config.txt 文件添加 dtoverlay=pi3-miniuart-bt 命令,并重启。
- 停止和禁用串口的控制台功能
sudo systemctl stop [email protected]
sudo systemctl disable [email protected] - 编辑cmdline.txt文件 sudo nano /boot/cmdline.txt删除console=serial0,115200 。后保存重启。
存在问题
树莓派串口测试,最大通讯速率为921600bit/s,在该速率下通讯有两种错误:
- 是片选信号相对于发送帧有相位偏差和定时器设定片选宽度有波动,相位偏差主要原因可能是串口数据发送不及时,宽度不稳定是时钟存在偶尔的误差,这个问题增大片选脉宽,延迟工具与回复还能解决。
- 就是树莓派有时出现发送的帧中间存在错误的00字段。这个不太好解决。可能是串口字段发送不连续导致的。