不懂就要问,搞了1天了,执行WFI指令后,不是说好的任意外部中断都可以唤醒么?怎么唤不醒啊。。。代码如下:(使用的LL库函数)
__asm void WFI_SET(void)
{
WFI;
}
void Low_Power_Mode_On(void)
{
WFI_SET();
}
//PC13
void Acc_Signal_Init(void)
{
LL_GPIO_InitTypeDef GPIO_InitStructure;
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOC);
GPIO_InitStructure.Pin = LL_GPIO_PIN_13;
GPIO_InitStructure.Mode = LL_GPIO_MODE_INPUT;
GPIO_InitStructure.Speed = LL_GPIO_SPEED_FREQ_HIGH;
GPIO_InitStructure.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStructure.Pull = LL_GPIO_PULL_NO;
LL_GPIO_Init(GPIOC, &GPIO_InitStructure);
}
void ACC_Exti_Init(void)
{
LL_EXTI_InitTypeDef EXTI_InitStructure;
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SYSCFG);
SYSCFG->EXTICR[3] |= 2 << 4; //PC --EXTI13
EXTI_InitStructure.Line_0_31 = LL_EXTI_LINE_13;
EXTI_InitStructure.LineCommand = ENABLE;
EXTI_InitStructure.Mode = LL_EXTI_MODE_IT;
EXTI_InitStructure.Trigger = LL_EXTI_TRIGGER_RISING;
LL_EXTI_Init(&EXTI_InitStructure);
LL_EXTI_EnableIT_0_31(LL_EXTI_LINE_13); //IMR寄存器 开放来自13的中断请求
LL_EXTI_EnableRisingTrig_0_31(LL_EXTI_LINE_13); //RTSR寄存器 上升沿选择触发
NVIC_SetPriority(EXTI4_15_IRQn, 0);
NVIC_EnableIRQ(EXTI4_15_IRQn);
}
void EXTI4_15_IRQHandler(void)
{
if (LL_EXTI_IsActiveFlag_0_31(LL_EXTI_LINE_13) == 1)
{
LL_EXTI_ClearFlag_0_31(LL_EXTI_LINE_13);
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
谢谢原子哥
一周热门 更多>