ESP32与树莓派串口通信延迟、字符乱码故障如何排查?
故障排查与解决步骤
- 优先检查共地连接:ESP32与树莓派必须将GND引脚直接连通,仅接TX/RX两条通信线会因为两端电平参考基准不一致,出现随机乱码、丢包、延迟问题,是该场景下最高发的故障原因。
- 修正树莓派串口映射配置:你当前使用的
/dev/ttyS0是树莓派的mini串口,其时钟源依附CPU主频,CPU负载波动时会出现波特率偏移,直接导致通信异常。请按以下步骤切换为稳定的硬件串口:- 执行命令
sudo raspi-config,依次进入Interface Options->Serial Port - 询问是否开启串口登录shell时选择
No - 询问是否启用串口硬件时选择
Yes - 保存退出后编辑配置文件,新系统路径为
/boot/firmware/config.txt,旧系统为/boot/config.txt,添加一行dtoverlay=disable-bt禁用蓝牙,释放硬件串口资源 - 重启树莓派后,硬件串口会映射到
/dev/ttyAMA0,使用命令sudo screen /dev/ttyAMA0 9600重新测试接收即可
- 执行命令
- 确认接线与参数匹配:ESP32的
TXD2(GPIO17)需接树莓派的RXD(GPIO15),双向通信的话再将ESP32的RXD2(GPIO16)接树莓派的TXD(GPIO14),不要接反引脚;你代码中使用的SERIAL_8N1参数为串口通用默认配置,与screen命令默认参数匹配,无需额外调整。
内容的提问来源于stack exchange,提问作者Matthias
相关产品推荐
相关产品推荐

