问答

汇集网友智慧,解决技术难题

刘俊涛

TA的家园币:10  

  • 新塘单片机外部中断唤醒失败

    使用的是新塘Nano100LC2BN用外部中断0(PB9)来唤醒深睡的MCU,发现NU-link仿真器在线仿真的时候可以正常唤醒,但是直接下载到程序后,唤醒不了(程序下载后可以运行)//GPIO配置***********************************************************************************************SYS->PB_H_MFP=SYS_PB_H_MFP_PB9_MFP_EXT_INT0;//PB9接外部中断INT0GPIO_SetMode(PB,BIT9,GPIO_PMD_INPUT);//将PB9设为输入模式GPIO_EnableEINT0(PB,9,GPIO_INT_FALLING);//下降沿触发中断.GPIO_INT_RISINGGPIO_INT_FALLINGNVIC_SetPriority(EINT0_IRQn,1);//设置中断优先级NVIC_EnableIRQ(EINT0_IRQn);//使能外部中断0向量GPIO_SET_DEBOUNCE_TIME(GPIO_DBCLKSRC_HCLK,GPIO_DBCLKSEL_1);//选择HCLK作为消抖时钟源GPIO_ENABLE_DEBOUNCE(PB,BIT9);//使能PB.9引脚的消抖功能//中断函数***********************************************************************************************voidEINT0_IRQHandler(void)//EINT0,指PB.9管脚上的外部信号中断。EINT0外部中断处理函数{if(GPIO_GET_INT_FLAG(PB,BIT9)){PB->ISRC=BIT9;//清除PB.9中断标志。ISRC写1=清除相应的未处理中断printf("PB.9EINT0occurred\r\n");}}//主程序***********************************************************************************************intmain(){UART_WAIT_TX_EMPTY(UART0);//等待UART0发送完成CLK_PowerDown();//MCU进入掉电模式while(1);}