OpenEdv-开源电子网

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

STM32外部中断无法进入-附程序(待解决)

[复制链接]

2

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2011-8-24
在线时间
62 小时
发表于 2011-8-24 19:18:08 | 显示全部楼层 |阅读模式

#include "exti.h"
#include "led.h"
#include "key.h"
#include "delay.h"
#include "usart.h"
//////////////////////////////////////////////////////////////////////////////////  
 

//外部中断0服务程序
void EXTI0_IRQHandler(void)
{
 delay_ms(10);//消抖
 if(KEY2==0)  //按键2
 {
  LED3=!LED3;
  LED2=!LED2; 
 }  
 EXTI->R=1<<4;  //清除LINE4上的中断标志位 
}

//外部中断15~10服务程序
void EXTI15_10_IRQHandler(void)
{   
 delay_ms(10);    //消抖   
 if(KEY0==0)      //按键0
 {
  LED0=!LED0;
 }else if(KEY1==0)//按键1
 {
  LED1=!LED1;
 }
 EXTI->R=1<<2;     //清除LINE2上的中断标志位 
 EXTI->R=1<<3;     //清除LINE3上的中断标志位 
}
//外部中断初始化程序
//初始化PE2,PE3,PE4为中断输入.
void EXTIX_Init(void)
{
  RCC->APB2ENR|=1<<6;     //使能PORTE时钟
  JTAG_Set(JTAG_SWD_DISABLE);//关闭JTAG和SWD
 GPIOE->CRL&=0XFF0000FF;//PE2,3,4,5设置成输入  
 GPIOE->CRL|=0X00888800;  
       
 GPIOE->ODR|=(1<<2)|(1<<3)|(1<<4)|(1<<5);    //PE2,3,4,5上拉,

 Ex_NVIC_Config(GPIO_E,2,FTIR); //下降沿触发
 Ex_NVIC_Config(GPIO_E,3,FTIR);//下降沿触发
 Ex_NVIC_Config(GPIO_E,4,FTIR);//下降沿触发

 MY_NVIC_Init(2,2,EXTI0_IRQChannel,2);    //抢占2,子优先级2,组2
 MY_NVIC_Init(2,1,EXTI15_10_IRQChannel,2);//抢占2,子优先级1,组2   
}

 

外部中断实验.zip

743.58 KB, 下载次数: 390

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

使用道具 举报

46

主题

284

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2011-6-20
在线时间
0 小时
发表于 2011-8-24 21:14:35 | 显示全部楼层
回复【楼主位】sweetlife:

---------------------------------
明显有问题  
//外部中断初始化程序
//初始化PE2,PE3,PE4为中断输入

对应的中断怎么可能是
EXTI0_IRQChannel
EXTI15_10_IRQChannel
呢?
回复 支持 反对

使用道具 举报

46

主题

284

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2011-6-20
在线时间
0 小时
发表于 2011-8-24 21:23:49 | 显示全部楼层

////外部中断2服务程序
void EXTI2_IRQHandler(void)
{
   
 //添加自己的应用

 EXTI->R=1<<2;     //清除LINE2上的中断标志位 
}

////外部中断3服务程序
void EXTI3_IRQHandler(void)
{
   
 //添加自己的应用

 EXTI->R=1<<3;     //清除LINE3上的中断标志位 
}

////外部中断3服务程序
void EXTI4_IRQHandler(void)
{   

 //添加自己的应用

 EXTI->R=1<<4;     //清除LINE4上的中断标志位 
}

//外部中断初始化程序
//初始化PE2,PE3,PE4为中断输入.
void EXTIX_Init(void)
{
 RCC->APB2ENR|=1<<6;     //使能PORTE时钟
 JTAG_Set(JTAG_SWD_DISABLE);//关闭JTAG和SWD
 GPIOE->CRL&=0XFF0000FF;//PE2,3,4,5设置成输入  
 GPIOE->CRL|=0X00888800;  
    
 GPIOE->ODR|=(1<<2)|(1<<3)|(1<<4)|(1<<5);    //PE2,3,4,5上拉,
 
 Ex_NVIC_Config(GPIO_E,2,FTIR); //下降沿触发
 Ex_NVIC_Config(GPIO_E,3,FTIR);//下降沿触发
 Ex_NVIC_Config(GPIO_E,4,FTIR);//下降沿触发
 
 MY_NVIC_Init(2,1,EXTI2_IRQChannel,2);    //抢占2,子优先级1,组2
 MY_NVIC_Init(2,2,EXTI3_IRQChannel,2);//抢占2,子优先级2,组2
 MY_NVIC_Init(2,3,EXTI4_IRQChannel,2);//抢占2,子优先级3,组2
  
}

试试  不行改改

回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 21:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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