STM32G070CB的USART1_RX引脚
简介
在使用STM32G070CBT6 的 USART1时,发现把 PA10作为 USART1_RX引脚时,接收不到数据。
问题排查
更换pin脚
使用PB6/PB7作为USART1_TX/RX, USART1 工作正常。
使用PA9/PB7作为USART1_TX/RX, USART1 同样工作正常。
示波器检测
示波器接PA10:
- PA10 作为普通的IO口,input和output可以正常工作
- PA10 作为USART1_RX,示波器上显示PA10一直被拉高,导致通信数据的电平变化很小。
查阅资料
参考链接
查数据手册发现
PA11/PA12可以被复用为PA9/PA10。
具体设置参考如下图片:
从上面图片可以发现,如果选择了“Pin PA9/pa10 instead od PA11/PA12"之后,在Pinout view框图里,原先PA9/PA10的位置会变成 NC, 原本PA11/PA12的位置变成了PA9/PA10。这时再把新的PA9/PA10配置为USART1_TX/RX, 同时物理连接也把PA11/PA12当作USART1_TX/RX,则USART1可以正常工作。
综上
在STM32G070系列MCU中, 可以把PA11/PA12复用为USART1 的 TX/RX, 但是如果同时存在PA9/10/11/12, 则USART1_TX可以使用引脚PA9(或者把PA11复用为PA9), 但RX只能用 PA12复用为PA10, 如果直接把PA10配置为RX,则USART1无法正常接收数据,因为PA10内部被一直拉高。.