高级会员

- 积分
- 539
- 金钱
- 539
- 注册时间
- 2019-7-3
- 在线时间
- 167 小时
|

楼主 |
发表于 2020-3-8 10:55:41
|
显示全部楼层
外部中断的配置代码- unsigned short High_Time_us_PA1=0; //PA1高电平时间
- unsigned short High_Time_us_PA2=0; //PA2高电平时间
- unsigned short High_Time_us_PA3=0; //PA3高电平时间
- void EXTI1_IRQHandler(void) //EXTI_Line1
- {
- if(EXTI_GetITStatus(EXTI_Line1)!= RESET)
- {
- if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1)) //上升沿中断
- {
- TIM2->CNT=0; //从0开始计数
- TIM_Cmd(TIM2,ENABLE);//启动定时器2
- }
- else //下降沿中断
- {
- High_Time_us_PA1=TIM2->CNT;//将高电平时间读出来
- TIM_Cmd(TIM2,DISABLE); //关闭定时器2等待下次测量
- TIM2->CNT=0; //计数值清零
- }
- EXTI->PR = EXTI_Line1;//清除中断标志
- }
- }
- void EXTI2_IRQHandler(void) //EXTI_Line2
- {
- if(EXTI_GetITStatus(EXTI_Line2)!= RESET)
- {
- if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2)) //上升沿中断
- {
- TIM3->CNT=0; //从0开始计数
- TIM_Cmd(TIM3,ENABLE);//启动定时器3
- }
- else //下降沿中断
- {
- High_Time_us_PA2=TIM3->CNT;//将高电平时间读出来
- TIM_Cmd(TIM3,DISABLE); //关闭定时器3等待下次测量
- TIM3->CNT=0; //计数值清零
- }
- EXTI->PR = EXTI_Line2;//清除中断标志
- }
- }
- void EXTI3_IRQHandler(void) //EXTI_Line3
- {
- if(EXTI_GetITStatus(EXTI_Line3)!= RESET)
- {
- if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)) //上升沿中断
- {
- TIM4->CNT=0; //从0开始计数
- TIM_Cmd(TIM4,ENABLE);//启动定时器4
- }
- else //下降沿中断
- {
- High_Time_us_PA3=TIM4->CNT;//将高电平时间读出来
- TIM_Cmd(TIM4,DISABLE); //关闭定时器4等待下次测量
- TIM4->CNT=0; //计数值清零
- }
- EXTI->PR = EXTI_Line3;//清除中断标志
- }
- }
复制代码 |
|