2. 你可以使用STM32CubeMx直接生成一个工程看看,生成的工程时可以直接使用的。
3. 验证功能好了以后,在更改代码。 无薪税绵 发表于 2017-8-23 11:43
没有发现开启全局中断的指令。
HAL_Init();应该有你说的。 如果可以进去中断说明有数据接收,产生的原因可能是外部干扰,楼主可以用示波器看一下接收引脚的状态。 不知道是是否还在关注这个帖子,下边截图是我的管脚配置。
你的管脚配置把输入输出都配置成复用推挽输出有问题吗?
本帖最后由 ataudio 于 2017-8-27 11:48 编辑
张亚飞 发表于 2017-8-24 17:51
不知道是是否还在关注这个帖子,下边截图是我的管脚配置。
你的管脚配置把输入输出都配置成复用推挽输出有 ...
谢谢这位兄弟保持关注。。按照原理来说,输入输出配成对应的方式,肯定是没有问题的。。
但是,对你的回复,今天我特意测试了几遍。
当我把GPIO都按照AF_PP配置时,程序跑起来,UART4收发是正常的。调试信息能清楚看到远端串口返回的数据。
当我TX与RX分别配置成AF_PP、INPUT时,调试信息不见任何返回。等有时间我再分析是不是卡在中断里了。
我的板子没再出现上电就进串口中断或者其他错误的原因,可能重要的一点在电源。。之前我一直电池供电,可能电压不稳,现在换成稳压电源。。
除了上面的模式配置,我把使能uart中断,写进了uart的init中和RX的callback中。
最后,我把库函数UART_Receive_IT()替换成自己的处理函数了。
页:
1
[2]