OpenEdv-开源电子网

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

请教原子哥一个外部中断的问题?

[复制链接]

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-7-8
在线时间
0 小时
发表于 2013-7-8 15:28:20 | 显示全部楼层 |阅读模式

#include "led.h"
#include "beep.h"
#include "key.h"
#include "delay.h"
#include "usart.h"

void EXTI0_IRQHandler(void)
{
 delay_ms(10);//消抖
 if(KEY3==0)  //WK_UP按键
 {    
  LED3=0; 
 }  
 EXTI->R=1<<0;  //清除LINE0上的中断标志位 
}
//外部中断2服务程序
void EXTI2_IRQHandler(void)
{
 delay_ms(10);//消抖
 if(KEY2==0)  //按键KEY2
 {
  LED0=0;
 }  
 EXTI->R=1<<2;  //清除LINE2上的中断标志位 
}
//外部中断3服务程序
void EXTI3_IRQHandler(void)
{
 delay_ms(10);//消抖
 if(KEY1==0)  //按键KEY1
 {    
  LED1=0;
 }  
 EXTI->R=1<<3;  //清除LINE3上的中断标志位 
}
//外部中断4服务程序
void EXTI4_IRQHandler(void)
{
 delay_ms(10);//消抖
 if(KEY0==0)  //按键KEY0
 {
  LED0=!LED0;
  LED1=!LED1;
 }  
 EXTI->R=1<<4;  //清除LINE4上的中断标志位 
}    
//外部中断初始化程序
//初始化PA0/PE2/PE3/PE4为中断输入.
void EXTIX_Init(void)
{
 KEY_Init();

 Ex_NVIC_Config(GPIO_B,7,FTIR);    //上升沿触发
 Ex_NVIC_Config(GPIO_B,1,FTIR);    //下降沿触发
 Ex_NVIC_Config(GPIO_B,4,FTIR);    //下降沿触发
  Ex_NVIC_Config(GPIO_B,6,FTIR);    //下降沿触发

 MY_NVIC_Init(2,0,EXTI0_IRQChannel,2); //抢占2,子优先级3,组2
 MY_NVIC_Init(2,1,EXTI2_IRQChannel,2); //抢占2,子优先级2,组2   
 MY_NVIC_Init(2,2,EXTI3_IRQChannel,2); //抢占2,子优先级1,组2   
 MY_NVIC_Init(2,3,EXTI4_IRQChannel,2); //抢占2,子优先级0,组2   
}
这个是我的中断程序,我把中断脚改成GPIO_B,程序死活进不了中断,主函数没修改啥东西,我买的不是旗舰的开发板,也是STM32F103C8,请原子哥赐教一下!

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-8 15:42:15 | 显示全部楼层
多看看我们的教程.
你这,6,7,根本就中断服务函数,直接死机.
倒是1,4,可以进入.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-7-8
在线时间
0 小时
 楼主| 发表于 2013-7-8 15:54:03 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
6、7端口对应的表示GPIOB的引脚,在开发指南中说到,对应相应的中断线,怎么会死机?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-8 16:08:42 | 显示全部楼层
你没中断服务函数,一旦6,7脚中断到来,系统找不到中断服务函数,直接就挂了...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-7-8
在线时间
0 小时
 楼主| 发表于 2013-7-8 16:09:09 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
请问原子哥!在开发指南中讲到BITX代表IO口的,而每个IO口对应外部中断0-15,相当BITX=1,对应外部中断1,但是在MY_NVIC_INIT的参数NVIC_Channel对应的也是外部中断,那BITX跟NVIC_Channel不是重复了,还望原子哥能够赐教!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-8 16:11:09 | 显示全部楼层
回复【5楼】cfp5730:
---------------------------------
你好好看看开发指南,关于SYSTEM文件夹对sys.c里面中断部分函数的介绍
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-7-8
在线时间
0 小时
 楼主| 发表于 2013-7-8 16:11:46 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
我屏蔽了6,7脚,只用1、4脚,按键下去还是不行,
void EXTIX_Init(void)
{
KEY_Init();

// Ex_NVIC_Config(GPIO_B,7,FTIR);  //上升沿触发
Ex_NVIC_Config(GPIO_B,1,FTIR);  //下降沿触发
Ex_NVIC_Config(GPIO_B,4,FTIR);  //下降沿触发
 // Ex_NVIC_Config(GPIO_B,6,FTIR);  //下降沿触发

MY_NVIC_Init(2,0,EXTI0_IRQChannel,2); //抢占2,子优先级3,组2
MY_NVIC_Init(2,1,EXTI2_IRQChannel,2); //抢占2,子优先级2,组2    
MY_NVIC_Init(2,2,EXTI3_IRQChannel,2); //抢占2,子优先级1,组2    
MY_NVIC_Init(2,3,EXTI4_IRQChannel,2); //抢占2,子优先级0,组2    
}
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-7-8
在线时间
0 小时
 楼主| 发表于 2013-7-8 16:12:55 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
好的,谢谢原子哥耐心的讲解!
回复 支持 反对

使用道具 举报

9

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2013-3-16
在线时间
0 小时
发表于 2013-7-20 00:57:40 | 显示全部楼层
回复【4楼】正点原子:

你没中断服务函数,一旦6,7脚中断到来,系统找不到中断服务函数,直接就挂了...

---------------------------------
原子哥  真会死机么
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-20 10:24:11 | 显示全部楼层
你试试呗.
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-17 13:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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