//串口代码如下
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));
}
2024-1-18 16:40:05
可能是因为中断函数中没有清除中断标志位导致一直进入中断函数,可以在中断函数中加上清除标志位的操作。另外,也可能是由于代码的其他问题导致,需要仔细检查代码。
可能是因为中断函数中没有清除中断标志位导致一直进入中断函数,可以在中断函数中加上清除标志位的操作。另外,也可能是由于代码的其他问题导致,需要仔细检查代码。
举报