OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2660|回复: 4

stm32f1的PB4配置外部中断失败

[复制链接]

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2019-7-4
在线时间
37 小时
发表于 2019-9-11 16:56:29 | 显示全部楼层 |阅读模式
5金钱
代码如下

int START = 0;
int k;

void EXTIX_Init(void)
{

                EXTI_InitTypeDef EXTI_InitStructure;
                GPIO_InitTypeDef GPIO_InitStructure;
                NVIC_InitTypeDef NVIC_InitStructure;
          
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);        //使能复用功能时钟

                /* EXTI line gpio config(PA0) */       
                RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE); // 使能PB端口时钟
       
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;                                                                                                                                        
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;         // 上拉输入
                GPIO_Init(GPIOB, &GPIO_InitStructure);

               
                /* EXTI line(PA0) mode config */               
                GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource4);
                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_PriorityGroupConfig(NVIC_PriorityGroup_2);
                NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;                                //使能按键WK_UP所在的外部中断通道
                NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;            //抢占优先级2,
                NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;                                          //子优先级3
                NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                                                                //使能外部中断通道
                NVIC_Init(&NVIC_InitStructure);

}

/********************************************************************************
*函数原型:                                                      
*参数说明:  无  
*返回值:    无                                                               
*说明:                                                
********************************************************************************/
void EXTI0_IRQHandler(void)
{

//                        if(EXTI_GetITStatus(EXTI_Line0) != RESET)               //确保是否产生了EXTI Line中断
//                        {
                                                delay_ms(10);                                     //延时消抖
                                               
                                                if(KEY2 == 0)       //PB4按下
                                                {
                                                                  START=0;
                                                                        GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);
                                                                        GPIO_ResetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);
                                                                        GPIO_ResetBits(GPIOA,GPIO_Pin_8);
                                                                        STOP_TIME;
                                                                        MAX_time = 0;
                                                                        timetickLED = 0 ;
                                                                        for(k = 0;k < 6; k++)
                                                                        {
                                                                                                Valve_time_on[k]=0;
                                                                                                Valve_time_off[k]=0;
                                                                        }
                                                }
                                               
                                                EXTI_ClearITPendingBit(EXTI_Line0);                //清除中断标志位

//                        }
}



PB4处为按键,端口上啦输入,按键按下gpio输入为低电平。


不知道哪里出错了    按键按下   没有反应?????

最佳答案

查看完整内容[请看2#楼]

PB4,要用EXIT4_IRQHandler的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2015-1-15
在线时间
18 小时
发表于 2019-9-11 16:56:30 | 显示全部楼层
PB4,要用EXIT4_IRQHandler的
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2016-10-5
在线时间
30 小时
发表于 2019-9-12 10:17:42 | 显示全部楼层
PB4用EXTI0吗?
回复

使用道具 举报

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2019-7-4
在线时间
37 小时
 楼主| 发表于 2019-9-12 10:35:40 | 显示全部楼层

是的   
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2016-10-5
在线时间
30 小时
发表于 2019-9-12 11:12:56 | 显示全部楼层

自己看一下手册吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 10:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表