香主,急救啊!!
我做一个项目,导师叫6号必须做完,但是我遇到了个很奇怪的问题啊!
我是这样做的:我的项目用到3个带STM32的板子。其中一个为主模块,另外两个位从模块。我们设主模块为A,两个模块分别为B和C。A要通过串口来控制B,C,并且从B.C来接收数据。A还要通过串口来和上位机通信。我是这样设置的
A的USART3——PC
A的USART1——B的USART2
A的USART2——C的USART2
也就是A的三个串口要同时工作。所有的串口的接收都是用中断来实现的。
出现了很奇怪的问题啊
我单步的时候,在A的USART2的接收中断中
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
{
RxData = USART_ReceiveData(USART2);
USART_ClearFlag(USART2,USART_FLAG_RXNE);
}
每次可以到if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
这一句,但是到不了RxData = USART_ReceiveData(USART2);这一句。也就是进入了中断。但是USART_IT_RXNE又没有 置位!怎么会这样啊。按理说,进入了中断函数,USART_IT_RXNE就应该被置位了啊。USART1也有是这个情况
香主,求救啊。我很急啊
谢谢啊 |