完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
昨天写的一个外部中断的程序,其中用到两个外部中断,每个中断只能触发一次,主函数运行正常,但是如果第一个中断触发完就不能再继续触发,只能触发第二个中断去。每个中断均只能触发一次。一下是中断的服务函数和初始化函数:
void EXti15_10_IRQHandler(void){delay_ms(10); //消抖 if(KEY0==0) //按键0{GPIOB->CRH&=0XFF0FFFFF; GPIOB->CRH|=0X00300000; GPIOB->ODR|=0<<13; delay_ms(1000);GPIOB->ODR|=1<<13;}else if(KEY1==0)//按键1{ GPIOB->CRH&=0XFFF0FFFF; GPIOB->CRH|=0X00030000; GPIOB->ODR|=0<<12; delay_ms(1000);GPIOB->ODR|=1<<12;}KEY0==1;KEY1==1;EXTI->R=1<<13; //清除LINE13上的中断标志位 EXTI->R=1<<15; //清除LINE15上的中断标志位}//外部中断初始化程序//初始化PA0,PA13,PA15为中断输入.void EXTIX_Init(void){//RCC->APB2ENR|=1<<2; //使能PORTA时钟//JTAG_Set(JTAG_SWD_DISABLE);//关闭JTAG和SWD GPIOC->CRL&=0XFFFFFFF0;//PA0设置成输入 GPIOC->CRL|=0X00000008; GPIOC->CRH&=0X0F0FFFFF;//PA13,15设置成输入 GPIOC->CRH|=0X80800000; GPIOC->ODR|=1<<13; //PA13上拉,PA0默认下拉GPIOC->ODR|=1<<15; //PA15上拉 //Ex_NVIC_Config(GPIO_C,0,RTIR); //上升沿触发Ex_NVIC_Config(GPIO_C,13,FTIR);//下降沿触发Ex_NVIC_Config(GPIO_C,15,FTIR);//下降沿触发 //MY_NVIC_Init(2,2,EXTI0_IRQChannel,2); //抢占2,子优先级2,组2MY_NVIC_Init(2,1,EXTI15_10_IRQChannel,2);//抢占2,子优先级1,组2 } |
|
相关推荐
3个回答
|
|
|
延时去掉了,但是还是那样
|
|
|
|
|
|
觉得可以触发.只是现象看不到而已,把置零改成这样GIPOB->ODR&=~(1<<13)试试,因为下面置1了,第二次触发也是1,这样就没实验效果了
|
|
|
|
|
|
不知道楼主要实现什么效果…初步估计。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
4130 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
3221 浏览 1 评论
2747 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
2175 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
14939 浏览 2 评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
3084浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
1892浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
2064浏览 3评论
1976浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
2165浏览 3评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 18:50 , Processed in 0.806570 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
643