LPC43xx与ESP32 UART通信故障排查:配置缺失问题
问题:LPC43xx与ESP32 UART通信无响应
背景信息
- 硬件接线已确认正确(RX与TX交叉连接),ESP32之间的UART通信正常,但LPC43xx端无法接收数据
- LPC43xx代码基于libopencm3开发:
- 使用引脚7_1(对应U2_TXD,功能6)、7_2(对应U2_RXD,功能6),引脚功能参考UM10503 datasheet
- GPIO关联配置正确:GPIO3_9对应7_1,GPIO3_10对应7_2,方向配置无误
- 系统PLL1时钟为204MHz,UART仅在此代码块中初始化,波特率按LPC USART章节公式精确计算为3MHz
- 测试代码采用while循环实现,后续计划迁移至SCT定时器
故障现象
- 无编译或运行报错,但调用
uart_rx_data_ready始终返回UART_RX_NO_DATA - 人为中断TX/RX线路时,ESP32端代码有响应,但LPC43xx端完全无任何反馈(曾添加LED提示分支验证)
- 初步判断UART未正常工作,缺少关键配置项
问题解决(更新)
- 按@romkey建议降低波特率:将波特率调整为281250后,通信恢复正常
- 实现3MHz波特率通信:在引脚SCU配置中添加
SCU_CONF_EHS_FAST参数后,成功稳定运行3MHz波特率 - 发现核心配置遗漏:固件中
CLK_M4_UART2寄存器被设置为0,导致UART2时钟被禁用,这是问题的主要原因之一
内容的提问来源于stack exchange,提问作者Johannes Hevrøy
相关产品推荐
相关产品推荐

