中级会员
 
- 积分
- 253
- 金钱
- 253
- 注册时间
- 2015-4-29
- 在线时间
- 38 小时
|

楼主 |
发表于 2021-7-22 13:13:39
|
显示全部楼层
本帖最后由 Sunny^o^ 于 2021-7-22 13:19 编辑
- 附中断配置代码:
- void WKUP_Init(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- EXTI_InitTypeDef EXTI_InitStructure;
- NVIC_InitTypeDef NVIC_InitStructure;
-
- RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//使能SYSCFG时钟
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //LED0-->PB.5 端口配置
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; //推挽输出
- GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
- /* Connect EXTI0 Line to PA0 pin */
- SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);
- /* Configure EXTI0 line */
- EXTI_InitStructure.EXTI_Line = EXTI_Line0;
- EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
- EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
- EXTI_InitStructure.EXTI_LineCmd = ENABLE;
- EXTI_Init(&EXTI_InitStructure);
-
- NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;//外部中断13
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;//抢占优先级2
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01;//子优先级2
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中断通道
- NVIC_Init(&NVIC_InitStructure);//配置NVIC
- }
- void WKUP_2_Init(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- NVIC_InitTypeDef NVIC_InitStructure;
- EXTI_InitTypeDef EXTI_InitStructure;
-
- RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);//使能GPIOA时钟
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//使能SYSCFG时钟
-
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //LED0-->PB.5 端口配置
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; //推挽输出
- GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz; //IO口速度为50MHz
- GPIO_Init(GPIOC, &GPIO_InitStructure);
-
- SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource13);//PC13 连接到中断线13
-
- EXTI_InitStructure.EXTI_Line = EXTI_Line13;//LINE0
- EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中断事件
- EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; //上升沿触发 ,因为74HC393需要下降沿很慢
- EXTI_InitStructure.EXTI_LineCmd = ENABLE;//使能LINE0
- EXTI_Init(&EXTI_InitStructure);//配置
-
-
- NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;//外部中断13
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;//抢占优先级2
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01;//子优先级2
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中断通道
- NVIC_Init(&NVIC_InitStructure);//配置NVIC
-
- }
复制代码
void EXTI0_IRQHandler(void)
{
To_Exit_Stop();//退出待机模式
/********************************/
EXTI_ClearITPendingBit(EXTI_Line0); // 清除LINE10上的中断标志位
}
void EXTI15_10_IRQHandler(void)//按键唤醒
{
To_Exit_Stop();//退出待机模式
/********************************/
EXTI_ClearITPendingBit(EXTI_Line13); // 清除LINE10上的中断标志位
}
|
|