为什么串口接收中断会反复被触发执行

2019-03-24 15:32发布

void UART1_ISR(void)
{
    unsigned long ulStatus;
    ulStatus=UARTIntStatus(UART1_BASE,true);     //   读取当前中断状态
    UARTIntClear(UART1_BASE,ulStatus);//   清除中断状态

   
    GPIOPinWrite(LED_PORT,LED_PIN, 0XFF);
    SysCtlDelay(1000 * (TheSysClock / 3000));
    GPIOPinWrite(LED_PORT,LED_PIN, 0X00);
    SysCtlDelay(1000 * (TheSysClock / 3000));
   
   

   
  
}
   
//  主函数(程序入口)
int main(void)
{
    clockInit();                                      //  时钟初始化:晶振,6MHz
    SysCtlPeriEnable(LED_PERIPH);                           //  使能LED所在的GPIO端口
    GPIOPinTypeOut(LED_PORT, LED_PIN);                      //  设置LED所在管脚为输出
    uartInit();                                             //  UART初始化
   
    for(;;);
}

我开了串口接收终端和接收超时中断  然后用串口调试助手给M3只发送了一次数据  只有一个字节 然而上面程序运行结果却是中断处理函数被反复触发执行呢 就像进入死循环一样  我只发了一次数据 而且只有一个字节 并且中断触发后也有清中断语句  所以不理解  请高手指点 小弟不胜感激 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
brucege888
2019-03-25 06:58
M3收到的数据没有及时读出啊,一直存在FIFO里面了。。。

一周热门 更多>

相关问题

    相关文章