高级会员

- 积分
- 956
- 金钱
- 956
- 注册时间
- 2016-10-8
- 在线时间
- 123 小时
|
1金钱
不懂就要问,搞了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);
}
}
|
|