本帖最后由 c555 于 2019-6-3 15:17 编辑
问题是这样的,串口收数据,波特率9600,开始收数据时候,在主程序中就进入一等待程序,出现问题时候,等待程序还没收完全部数据就退出来了,原因就是在中断中,没有执行A=0;,或者执行了,没起作用。
已经证实,这种情况并不是每次都出,是偶尔的。
已经证实,每收一个字节都会进入中断程序的。
已经证实,变量A用Volatile修饰没有效果。
可能问题出在哪了呢? A为什么赋值失败呢?
uint8_t A=0;
while(A<=150){ //等待1.5mS
IWDG_ReloadCounter();
delay_us(10);
A++;
}
void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_RXNE) == 1)
{
A=0;
} }
|