STM32-Nucleo板USART_Tx引脚无数据信号问题求助
问题原因与解决方法
核心问题:Nucleo板的USART信号路径跳线配置错误
你的Nucleo板上的SB13/SB14跳帽是把USART2的TX/RX信号直接连到板载ST-Link的虚拟串口(VCP),所以电脑能通过USB收到数据,但实际的PA2引脚并没有把信号输出到外部接口——因为SB62/SB63跳帽未插,USART2的TX/RX引脚没有和外部可用的接口(比如Arduino兼容的D1/D0)连通,导致示波器测不到信号,也无法和其他板通信。
解决步骤
- 断开ST-Link与USART2的连接:拔掉SB13和SB14的跳帽,这样USART2的TX/RX不再和ST-Link绑定。
- 引出USART2到外部引脚:插上SB62和SB63的跳帽,此时PA2(USART2_TX)会连接到Arduino接口的D1引脚,PA3(USART2_RX)连接到D0引脚。
- 重新上电测试:
- 用示波器测量Arduino接口的D1引脚(或直接测PA2焊盘),此时应该能看到UART发送的波形。
- 用杜邦线连接两个Nucleo板的D1(TX)和D0(RX)(注意交叉连接:A板TX连B板RX,A板RX连B板TX),即可实现板间UART通信。
额外验证建议
- 闭环测试验证:插好SB62/SB63后,短接Arduino接口的D1和D0,在代码中加入
HAL_UART_Receive逻辑,应该能接收到自己发送的"Hello World !!!",确认USART2的外部通路正常。 - 确认引脚配置:你CubeMX生成的初始化代码没问题——PA2配置为
GPIO_MODE_AF_PP(复用推挽输出)、GPIO_AF7_USART2,时钟配置也正确(因为ST-Link能收到数据,说明USART2外设本身工作正常)。
内容的提问来源于stack exchange,提问作者codeurdudimanche
相关产品推荐
相关产品推荐

