更改硬件串口映射

ttyAMA0是硬件接串口,ttyS0是软件串口
  1. 输入sudo raspi-config 打开串口,关闭串口登录,后重启raspberry.
  2. 查看串口映射关系 ls -l /dev 如 serial0 -> ttyS0 serial1 -> ttyAMA0
    ttys0为软件串口,默认GPIO映射到软件串口
  3. 查看 /boot/overlays/ 目录下有没有 pi3-miniuart-bt-overlay.dtb 这个
    文件,如果有,那么就是已经把硬件串口重新分配给了GPIO,没有的话下载一个放到 /boot/overlays/路径下
    4.关闭蓝牙服务sudo systemctl disable hciuart。
  4. 编辑/boot/config.txt 文件添加 dtoverlay=pi3-miniuart-bt 命令,并重启。
    lrwxrwxrwx 1 root root 7 Sep 1 20:25 serial0 -> ttyAMA0
    lrwxrwxrwx 1 root root 5 Sep 1 20:25 serial1 -> ttyS0
  5. 停止和禁用串口的控制台功能

    sudo systemctl stop serial-getty@ttyAMA0.service

    sudo systemctl disable serial-getty@ttyAMA0.service
  6. 编辑cmdline.txt文件 sudo nano /boot/cmdline.txt删除console=serial0,115200 。后保存重启。
存在问题

树莓派串口测试,最大通讯速率为921600bit/s,在该速率下通讯有两种错误:

  1. 是片选信号相对于发送帧有相位偏差和定时器设定片选宽度有波动,相位偏差主要原因可能是串口数据发送不及时,宽度不稳定是时钟存在偶尔的误差,这个问题增大片选脉宽,延迟工具与回复还能解决。
  2. 就是树莓派有时出现发送的帧中间存在错误的00字段。这个不太好解决。可能是串口字段发送不连续导致的。
posted @ 2022-09-01 19:44  fan230  阅读(161)  评论(0编辑  收藏  举报