首先,用示波器看下rx管脚上有没有波形。若有的话就是程序编写初始化有问题了 。按照STM32表函数库进行编程。调用他们库的函数来实现USART的接收中断。多看下库函数的例程就能解决。或者你把你的程序贴出来我帮你看下。注意管脚配置和时钟使能,中断使能,NVIC函数等都要配置。
应该是你在执行数码管写的时候重新配置了A端口,使串口失效,你可以在数码管操作完之后 马上配置回原来的配置,不过最好是把这两个分开,因为你配置来配置去的,很可能会丢失数据
1、中断标志位要清零USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);表示寄存器非空
2、NVIC_PriorityGroupConfig(NVIC_PriorityGroup_3);优先级设得低了,3改成0
把
GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE);
换成
AFIO-MAPR=~AFIO_MAPR_USART3_REMAP_NOREMAP;
AFIO-MAPR|=AFIO_MAPR_USART3_REMAP_PARTIALREMAP;
再试试?
本文标签:stm32usart3不进接收中断