Google Coral开发板UART3可发送但无法接收问题求助
Google Coral UART3(ttymxc2)仅发送无法接收问题解决步骤
- 第一步:确认引脚复用与功能配置
Coral的i.MX8M SoC引脚存在复用逻辑,UART3功能默认可能未启用或被其他外设占用,先执行命令查询引脚状态:cat /sys/kernel/debug/pinctrl/30330000.pinctrl/pinmux-pins | grep -E 'UART3_RX|UART3_TX'
确认UART3_RX对应引脚未被配置为GPIO/蓝牙功能,也未被其他服务占用。部分固件版本默认将UART3分配给蓝牙模块,可先执行sudo systemctl stop bluetooth停用蓝牙服务后复测。 - 第二步:校验串口参数,关闭硬件流控
硬件流控默认开启是UART3无法接收的最常见诱因,先查看当前串口配置:stty -F /dev/ttymxc2 -a
确认波特率、数据位、停止位、奇偶校验参数和外接FTDI模块完全匹配,同时执行命令关闭硬件流控:stty -F /dev/ttymxc2 -crtscts
额外执行lsof /dev/ttymxc2确认没有其他进程占用该串口节点。 - 第三步:环回测试定位故障范围
断开FTDI连接,直接短接Coral端UART3的TX、RX引脚,开启两个终端分别执行:
终端1(监听接收):cat /dev/ttymxc2
终端2(发送测试数据):echo "test uart3" > /dev/ttymxc2
若监听终端能收到测试数据,说明Coral端UART3硬件与配置正常,故障出在外部连线:检查FTDI与Coral的RX/TX是否接反、FTDI电平是否为3.3V(Coral UART为3.3V电平,接入5V会损坏引脚)、FTDI模块本身是否存在故障。
若环回测试也无法收到数据,需修改设备树配置,将UART3对应的两个引脚强制配置为UART收发功能,禁用其他复用选项。 - 第四步:校验用户权限
若使用非root用户操作,确认当前用户已加入dialout用户组:sudo usermod -aG dialout $USER
执行后重新登录生效,避免因无读取权限导致无法接收数据。
内容的提问来源于stack exchange,提问作者Ahmed Abri
相关产品推荐
相关产品推荐

