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只发送了一次数据 只有一个字节 然而上面程序运行结果却是中断处理函数被反复触发执行呢 就像进入死循环一样 我只发了一次数据 而且只有一个字节 并且中断触发后也有清中断语句 所以不理解 请高手指点 小弟不胜感激
此帖出自
小平头技术问答
一周热门 更多>