stm32f101c8t6 匪夷所思的串口难题啊啊

2019-07-14 21:06发布

我写的一个程序,只开了接收中断,没开发送中断,但是函数在调用USART3发送程序的时候进了中断,并且出了后,又进去,不停的进进出出啊,想不通啊。USART3配置代码看图:时钟开启
1.PNG

GPIO配置
2.PNG
USART配置
3.PNG
NVIC配置
4.PNG
USART3中断服务函数
5.PNG
详细问题是这样的,USART3连接的是条形码扫描模块,初始化时需要通过串口发送命令。调用串口发送函数的时候一直进串口中断,初始化函数:
6.PNG
在用USART_PutString函数的时候就会进串口3中断,USART_PutString函数:

7.PNG
但是我没有开发送中断啊,只开了接收中断啊,单步发现进了中断后判断if,因为没有触发接收中断,不进入if,退出中断,然后又进入中断,出中断,进中断。。。这是为啥啊?












友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
gniquhs
2019-07-15 10:09
羊斩熊 发表于 2016-3-30 10:36
是这样的,上面也有清中断标志(虽然放在了后面),只不过切断点单步显示没有进if所以和这个语句应该没关系,也就是没有触发接收中断,必然是其它中断源进的中断,在usart_putstring中while语句进的中断,可是我没有开其它中断,搞不清楚中断源哦,想了老长时间。 ...

我看你中断服务函数只有一个if语句而已啊,你把清标志位放进去了?是if语句的第二个函数中么?
如果是这样?你进入中断,if语句没有执行,当然也没有清标志位。

一周热门 更多>