每一日小结<1>

在调试UART过程中,遇到程序偶尔无法正常运行的问题。深入排查后发现,Debug UART因未配置上拉电阻,导致RX脚电平不稳定,误触中断。统一配置上拉输入后,问题得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总结一下今天在调试UART的时候,遇到的问题和解决过程。

        在工作中使用了两路UART,一路用于Debug,一路用于通信。

        通信UART接的是Sub板,通信UART配置为:TX推挽输出,RX浮空输入,在中断里接收和发送,按照这样的配置,UART也能够正常的进行数据的数据的收发;按照此配置来配置UART2,然后使用USB转串口模块连接板子和PC,结果发现程序有时候可正常运行,有时候不能正常运行,这就玄了,起初怀疑是仿真器下载出错、复位电路异常等原因。结果一一排查也得不到事情的原委,后来在KEIL里仿真查询得知程序不能正常运行是因为一直跑到Debug串口中断里出不来了。

        在配置完Debug和通信的UART后,在程序中查看断点,发现Debug的UART的RX脚为低电平,而通信UART的RX脚为高电平,两个UART一样的配置,为啥初始化后引脚电平不一致呢?经过仔细查看,原来在Sub板端,将UART的两个引脚上拉了,因此可以正常通信;而用于Debug的UART的两个引脚并没有外部电路,而是直接接在USB转串口模块上。原来如此,Debug的UART的RX脚设为浮空输入状态,在连接了USB转串口模块以后,还能正常通信,当拔掉USB转串口模块时,由于RX脚为浮空输入,电平状态为低,而UART又是在中断里收发数据的,由于RX状态的不稳定使得UART的接收中断被误触发,一直跑到UART中断里去了。

        得知原因之后,统一把UART的RX引脚配置为上拉输入状态,按照此配置后,UART终于可以正常工作了,软件也不会跑异常了。终于明白了在硬件设计中给UART的两根线加上拉电阻的我必要性了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值