完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位安安
这边有遇到一个有关于外部中断问题想请教大家 (使用MM32F031C8T6) 我尝试用范例改过使用PB0去做外部中断 可是外部中断程式无任何反应(也就是一直都不会主动跳进中断副程式) 但一般的GPIO却有反应这样... 因为解很久...都没有头绪了 想问大家这要怎么解决 不好意思 麻烦各位了 中断程式码如下: //****************************************************************************** //Function: EXTI_Init: //Type : //****************************************************************************** void EXTI_Init(void){ RCC->AHBENR|=0x3<<17; RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN; //System configuration register enable GPIOB->CRL &= 0xFFFF0FF0; GPIOB->CRL |= GPIO_CRL_CNF0_1; Ex_NVIC_Config(_EXTI_GPIOB_,0,_EXTI_FTIR_); //下降沿触 NVIC_Init(2,0,EXTI0_1_IRQn,2); //抢占2,子优先级0,组2 } //****************************************************************************** //Function: Ex_NVIC_Config: //Type : //****************************************************************************** void Ex_NVIC_Config(uint8_t p_GPIO,uint8_t p_Bit,uint8_t TRIM){ uint8_t m_EXTAddr; uint8_t m_EXTOffset; m_EXTAddr=p_Bit/4;//得到中断寄存器组的编号 m_EXTOffset=(p_Bit%4)*4; //RCC->APB2ENR|=0x01;//使能io复用时钟 SYSCFG->EXTICR[m_EXTAddr]&=~(0x000F< EXTI->IMR|=1< //EXTI->EMR|=1< if(TRIM&0x01)EXTI->FTSR|=1< //****************************************************************************** //Function: EXTI0_1_IRQHandler: //Type : //****************************************************************************** void EXTI0_1_IRQHandler(void){ __NOP(); if( P_B0 == 0){ __NOP(); } EXTI->PR=1<<0; //清除LINE0上的中断标志位 } |
|
相关推荐
1个回答
|
|
//外部中断初始化函数
void EXTIX_Init(void) { EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);//外部中断,需要使能AFIO时钟 KEY_Init();//初始化按键对应io模式 //GPIOB.0 中断线以及中断初始化配置 SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA,EXTI_PinSource0); EXTI_InitStructure.EXTI_Line=EXTI_Line0; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;//下降沿触发 EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); //根据EXTI_InitStruct中指定的参数初始化外设EXTI寄存器 NVIC_InitStructure.NVIC_IRQChannel = EXTI0_1_IRQn; //使能按键所在的外部中断通道 NVIC_InitStructure.NVIC_IRQChannelPriority = 0x01; //子优先级1 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道 NVIC_Init(&NVIC_InitStructure); } void KEY_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOB, ENABLE);//使能PORTA,PORTB,PORTC时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;//PB0,WK_UP GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //设置成下拉输入 GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOB0 } void EXTI0_1_IRQHandler(void) { for(EXTI_DELAY=0;EXTI_DELAY<1000;EXTI_DELAY++); if(WK_UP==1) { LED2_TOGGLE(); 闪灯 } EXTI_ClearFlag(EXTI_Line0); //清除EXTI0线路挂起位 } |
|
|
|
只有小组成员才能发言,加入小组>>
2248个成员聚集在这个小组
加入小组灵动微电子MM32全系列MCU产品应用手册,库函数和例程和选型表
11681 浏览 3 评论
【MM32 eMiniBoard试用连载】+基于OLED12864的GUI---U8G2
5922 浏览 1 评论
【MM32 eMiniBoard试用连载】移植RT-Thread至MM32L373PS
10955 浏览 0 评论
【MM32 eMiniBoard测评报告】+ 开箱 + 初探
4571 浏览 1 评论
灵动微课堂(第106讲) | MM32 USB功能学习笔记 —— WinUSB设备
4298 浏览 1 评论
[MM32软件] MM32F002使用内部flash存储数据怎么操作?
964浏览 1评论
792浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 12:11 , Processed in 0.572944 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号