关于STM32串口2无法发送的问题(习惯细节)

项目需要,硬件设置了两个串口:USART1、USART2.前者用于串口屏,后者用于RS485通讯。 

问题为:串口1通讯正常,RS485通讯接收端可正常接收数据,发送端无法发送。

由于485模块为金升阳的自动收发隔离485模块,不需要使用使能端口,仅需要RX TX与模块连接即可

连接图如下:

程序为参考的原子rs485通讯例程,并在开发板上验证成功,收发均正常,项目程序与其相同 但仅可接收 发送端口始终无法通讯。由此怀疑是硬件设计造成的,又拆又焊,折腾半天,最后发现是程序配置的一个小的疏忽造成的这个问题ε=(´ο`*)))唉

经仔细检查后,发现问题所在是由于程序端口配置引起的。

因不需要使用使能端口,所以直接注释掉使能端口配置语句,屏蔽掉了速率配置这句话,GPIO结构体速率成员没有得到赋值,造成了后面PA2引脚输出速率为0,故出现通讯仅可接收却无法发送的问题。后面进行速率配置后,收发正常。(黑脸)

在此,请后面参照他人程序时仔细阅读程序,或养成配置输出端口时将每个端口的具体模式、速率均进行配置,不要进行偷懒。防止因疏忽造成一些低级的错误。

猜你喜欢

转载自blog.csdn.net/weixin_42634914/article/details/106519147