STM32F042 PWR_PVD
各位大侠,如下配置,掉电不进中断,请问哪里问题?void PVD_Configuration(void)
{
#if 1
EXTI_InitTypeDef EXTI_InitStructure;
/* Enable PWR and BKP clock */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
/* Configure EXTI Line16(PVD Output) to generate an
interrupt on rising and falling edges */
EXTI_ClearITPendingBit(EXTI_Line16);
EXTI_InitStructure.EXTI_Line = EXTI_Line16;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
PWR_PVDLevelConfig(PWR_PVDLevel_7);
/* Enable the PVD Output */
PWR_PVDCmd(ENABLE);
#endif
}
{
/* Enable the PVD Interrupt */
NVIC_InitStructure.NVIC_IRQChannel = PVD_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
下面那段代码是另外一个函数的么?看着那么奇怪的?另外你的中断服务函数呢?你怎么知道没进入中断呢? す疯Ⅱ恒す 发表于 2018-4-28 16:35
下面那段代码是另外一个函数的么?看着那么奇怪的?另外你的中断服务函数呢?你怎么知道没进入中断呢? ...
下面是一段函数提取出来的,中断函数:
void PVD_IRQHandler(void)
{
Puts("\r\n PVD_IRQHandler");
if(EXTI_GetITStatus(EXTI_Line16) != RESET)
{
Puts("\r\n PVD_IRQHandler");
EXTI_ClearITPendingBit(EXTI_Line16);
}
}
Owen.li 发表于 2018-4-30 10:01
下面是一段函数提取出来的,中断函数:
void PVD_IRQHandler(void)
{
你初始化的时候应该把中断相关配置好,比如上面的优先级。
还有,你是直接掉电的么?我估计串口没来得及发数据就没电了,或者你用可调电源试试,从3.3V电调到2.5V看看。
页:
[1]