我写的一个程序,只开了接收中断,没开发送中断,但是函数在调用USART3发送程序的时候进了中断,并且出了后,又进去,不停的进进出出啊,想不通啊。USART3配置代码看图:时钟开启
GPIO配置
USART配置
NVIC配置
USART3中断服务函数
详细问题是这样的,USART3连接的是条形码扫描模块,初始化时需要通过串口发送命令。调用串口发送函数的时候一直进串口中断,初始化函数:
在用USART_PutString函数的时候就会进串口3中断,USART_PutString函数:
但是我没有开发送中断啊,只开了接收中断啊,单步发现进了中断后判断if,因为没有触发接收中断,不进入if,退出中断,然后又进入中断,出中断,进中断。。。这是为啥啊?
你讲的很有道理~不过中断可能由好几种中断源触发产生,如果我开了好几个中断源,进了同一个中断服务函数,我怎么知道是哪个中断源引起的呢?这时候就需要用if来判断了。虽然我这里只开了串口接收中断,加不加if无所谓,但是如果发生了串口接收中断有if也没什么影响吧?何况现在这还不是重点,重点是我只开了串口接收中断,但是有其它中断源触发了中断进入了中断函数,不进入if,说明产生的不是串口接收中断,但是我只开了这个。我也想清标志位啊,但是清哪个标志位之前是不是应该搞清楚触发的是哪个中断啊。。。我啰嗦了
一周热门 更多>