OpenEdv-开源电子网

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

无法产生外部中断3,进不了EXTI3_IRQHandler()

[复制链接]

5

主题

16

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2013-2-1
在线时间
6 小时
发表于 2013-8-7 14:25:34 | 显示全部楼层 |阅读模式
我用STM32F103RBT6,接PB3(下拉)作按键,无法产生中断。
我想通过按键中断打开lcd背光,一直无法实现,用仿真器仿真,发现根本没有进入中断函数。
各位帮我看看什么原因,谢谢。
以下是PB3配置:
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

  GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource3);//Pc1连接到外部中断通道6
  EXTI_InitStructure.EXTI_Line = EXTI_Line3;              //外部中断通道6
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;      //外部中断模式
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //下降沿触发
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;                  //使能
  EXTI_Init(&EXTI_InitStructure);

  NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQChannel;    //指定中断源
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //指定响应优先级别1
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;            //使能外部中断通道
  NVIC_Init(&NVIC_InitStructure);

void  EXTI3_IRQHandler(void) /*上翻中断唤醒*/
{
    if(EXTI_GetITStatus(EXTI_Line3) != RESET)
    {  
        EXTI_ClearITPendingBit(EXTI_Line3);  /*清除中断标记*/
       LCD_BL=1;
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2019-4-9
在线时间
79 小时
发表于 2021-7-15 17:30:48 | 显示全部楼层
ailly 发表于 2021-7-15 16:07
我加了你这句后烧写器被禁了,现在无法烧录了


少了这句EXTI_GenerateSWInterrupt(EXTI_Line3);中外部中断初始化
回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-8-7 14:33:50 | 显示全部楼层
貌似PB3时钟都没开...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2013-8-7 14:34:29 | 显示全部楼层
回复【楼主位】iken:
---------------------------------
显然你的EXTI是默认低电平,那你按键按下产生电平变化吗?
于20150522停用该账号:http://www.microstar.club
回复 支持 反对

使用道具 举报

5

主题

16

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2013-2-1
在线时间
6 小时
 楼主| 发表于 2013-8-7 14:40:49 | 显示全部楼层
pb时钟打开的,按键时高电平
回复 支持 反对

使用道具 举报

5

主题

16

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2013-2-1
在线时间
6 小时
 楼主| 发表于 2013-8-7 14:41:04 | 显示全部楼层
我调到pb4就正常
回复 支持 反对

使用道具 举报

5

主题

16

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2013-2-1
在线时间
6 小时
 楼主| 发表于 2013-8-7 15:04:59 | 显示全部楼层
真是奇怪啊,为什么pb3产生不了中断。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-8-7 17:37:47 | 显示全部楼层
回复【6楼】iken:
---------------------------------
检查下硬件试试.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2013-9-27
在线时间
0 小时
发表于 2013-9-27 18:28:19 | 显示全部楼层
我也遇到这个问题,郁闷啊,就中断3不行,0,1,2,15-9都好好的
回复 支持 反对

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2013-9-27
在线时间
0 小时
发表于 2013-9-28 10:51:28 | 显示全部楼层
应该是PB3默认作为了gtag引脚吧。
加入这句话试试
GPIO_PinRemapConfig( GPIO_Remap_SWJ_Disable , ENABLE); 
我的是这么解决的
回复 支持 反对

使用道具 举报

18

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2015-4-4
在线时间
0 小时
发表于 2015-4-11 22:38:24 | 显示全部楼层
我也遇到这个问题,只有EXTI0可以,如果改为其他就不能产生中断;烦死了,请问你们知道什么原因吗,解决方法是怎样
回复 支持 反对

使用道具 举报

18

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2015-4-4
在线时间
0 小时
发表于 2015-4-11 22:39:21 | 显示全部楼层
回复【10楼】馒头仔:
---------------------------------
回复【10楼】馒头仔:
---------------------------------
即使加上这句GPIO_PinRemapConfig( GPIO_Remap_SWJ_Disable , ENABLE);也不行
回复 支持 反对

使用道具 举报

7

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2015-10-28
在线时间
0 小时
发表于 2015-11-13 18:29:08 | 显示全部楼层
[mw_shl_code=c,true]void EXTIX_Init(void) { NVIC_InitTypeDef NVIC_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);// RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE); /* Configure the GPIO pin */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; // GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource14);//PB14 EXTI_InitStructure.EXTI_Line = EXTI_Line14; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //????????·? EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } void EXTI15_10_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line14)!=RESET) { TIM_Cmd(TIM2, ENABLE); EXTI_ClearITPendingBit(EXTI_Line14); } } [/mw_shl_code]
我B14的也不行  什么鬼 
越夜越拉风丶
回复 支持 反对

使用道具 举报

4

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-10-27
在线时间
0 小时
发表于 2015-11-20 23:16:22 | 显示全部楼层
回复【10楼】馒头仔:
---------------------------------
能把你EXTI0程序,给我看看吗?
回复 支持 反对

使用道具 举报

10

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2015-10-8
在线时间
18 小时
发表于 2021-4-5 18:09:39 | 显示全部楼层
我的PH3也产生不能中断,STM32F767的板子,PH2和PC13都可以,唯独这个,怎么都不能PENDING。不知什么原因
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2021-7-15
在线时间
3 小时
发表于 2021-7-15 16:07:13 | 显示全部楼层
明镜亦非台 发表于 2013-9-28 10:51
应该是PB3默认作为了gtag引脚吧。
加入这句话试试
GPIO_PinRemapConfig( GPIO_Remap_SWJ_Disable&nbsp ...

我加了你这句后烧写器被禁了,现在无法烧录了
回复 支持 反对

使用道具 举报

4

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2019-4-9
在线时间
79 小时
发表于 2021-7-15 17:27:34 | 显示全部楼层
少了这句EXTI_GenerateSWInterrupt(EXTI_Line3);中外部中断初始化
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-23 23:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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