关于stm32f0xx中断模式串口只能发不能收的问题,入行必过的第一个坑

来源:互联网 发布:p2p网络推广方案ppt 编辑:程序博客网 时间:2024/05/16 11:16

额。。。第一次发博客。其实心里有点小激动。很早就想写博客因为把自己身边遇到的问题写出来分享给大家。让大家少走点弯路。

废话不多说进入正题

   

***********************我用的是stm32f0xx**************************************************

  刚开始遇到这个问题我也很纳闷,用串口调试助手调试,发现根本没有收到数据,然后我在想是不是没有进入中断;











然后在里面加个led   果然 灯没闪,说明没进入中断。

然后我就把中断里的代码放到main的while(1)中。

发现会只能发送,也就是说当res给值时发送串口能收到,但是如果先接受后发送,收到的就是000000这也解释了RXNE不会中断的原因。所以也就是说根本没收到数据。到这里问题就集中在这点上了。那么为什么没有收到数据。


这里解释一下百分之99的是配置有问题  


你看这里是PA2 和PA3复用的是USART2  RX/TX (默认的都是GPIO功能)所以要复用 


       RXD模式要写对是GPIO_MODE_AF 不是GPIO_MODE_IN因为这里芯片手册里没说所以要这样配置,后面还要GPIO复用。

代码如下




你按照手册里这样的模式就可以

那什么时候不用这样写呢。在STM32f103xx手册中有这样的写。






















常运行啦。这里提示如果手册写了就要用上面那种复用模式了。如果没写就要写复用函数和GPIO_MODE_AF模式写。

好了在附上我新建的群596856946  欢迎加入

最后再附上串口的流程






1 0
原创粉丝点击