嵌入式学习小组
直播中

1123127317

9年用户 1131经验值
擅长:制造/封装 接口/总线/驱动
私信 关注

M031开启中断之后一直进入中断函数是怎么回事?

//串口代码如下
void Blue_Init(void)
{
  //串口时钟使能
  CLK_EnableModuleClock(UART0_MODULE);
  //串口时钟选择HIRC(48MHZ)
  CLK_SetModuleClock(UART0_MODULE,CLK_CLKSEL1_UART0SEL_HIRC,CLK_CLKDIV0_UART0(1));
  //串口管脚复用PA14:TXD0/PA15:RXD0
  SYS->GPA_MFPH=(SYS->GPA_MFPH & ~(SYS_GPA_MFPH_PA14MFP_Msk | SYS_GPA_MFPH_PA15MFP_Msk))        |\
                                  (SYS_GPA_MFPH_PA14MFP_UART0_TXD | SYS_GPA_MFPH_PA15MFP_UART0_RXD);
  //复位串口
  SYS_ResetModule(UART0_RST);
  //打开串口波特率115200
  UART_Open(UART0, 57600);
  Blue_NVInit();
}
void Blue_NVInit(void)
{
  //打开串口0的中断
  NVIC_EnableIRQ(UART02_IRQn);
  //设置中断优先级
  NVIC_SetPriority(UART02_IRQn,1);
  //打开串口的发送/接收中断使能
  UART_EnableInt(UART0,(UART_INTEN_THREIEN_Msk|UART_INTEN_RDAIEN_Msk));
}

回帖(1)

王璐

2024-1-18 16:40:05
可能是因为中断函数中没有清除中断标志位导致一直进入中断函数,可以在中断函数中加上清除标志位的操作。另外,也可能是由于代码的其他问题导致,需要仔细检查代码。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分