2188|0

12

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

现在是进入中断,返不会来,怎么改啊 [复制链接]

/*实现功能:按键之前D2常亮;
            按下INT2键(C13端口,对应EXTI13外部中断线),进入中断程序D2常灭*/
#include "stm32f10x.h"
/*****************************/
void LED_GPIO_Config()
        {
          GPIO_InitTypeDef GPIO_InitStructure;
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE); //开启GPIO_G外设时钟
          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;                         //板上LED编号 D2        PG14
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                 //通用推挽输出
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //设置引脚速率
          GPIO_Init(GPIOG, &GPIO_InitStructure);                                 //调用库函数,初始化GPIO_G
         
      GPIO_SetBits(GPIOG,GPIO_Pin_14);                                                 //点亮D2
          
    }
void NVIC_Config(void)        //NVIC中断控制器初始化配置
{
     NVIC_InitTypeDef  NVIC_InitStructure;
         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);                  //设置中断优先级分组1
     NVIC_InitStructure.NVIC_IRQChannel =EXTI15_10_IRQn;        //设定中断源为EXTI13
     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;        //中断占优先级为0
     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;                //副优先级为0
     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                //使能中断
     NVIC_Init(&NVIC_InitStructure);       
}
void  EXTI_Config(void)   //外部中断配置        PC13
{
     GPIO_InitTypeDef GPIO_InitStructure;                        
     EXTI_InitTypeDef  EXTI_InitStructure;                        
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);
         NVIC_Config();
         /*EXTI LINE GPIO CONFIG */
     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;                //C13       
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;        //上拉输入       
     GPIO_Init(GPIOC, &GPIO_InitStructure);                        
           /*EXTI LINE MODE CONFIG*/
         GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13);
     EXTI_InitStructure.EXTI_Line = EXTI_Line13;
     EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;        //中断模式为中断模式
     EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;        //下降沿出发
     EXTI_InitStructure.EXTI_LineCmd = ENABLE;                        //使能中断线
     EXTI_Init(&EXTI_InitStructure);                                //根据参数初始化中断寄存器         
}
EXTI15_10_IRQHandler() //外部中断13中断服务函数
        {
          if(EXTI_GetITStatus(EXTI_Line13)!=RESET)
                   {
                       
                        //EXTI_ClearFlag(EXTI_Line13);
                    GPIO_ResetBits(GPIOG,GPIO_Pin_14);                                                 //点亮D5                         
            EXTI_ClearITPendingBit(EXTI_Line13);
                   }
        }

int main()       
        {
          LED_GPIO_Config();
          EXTI_Config();
          while(1);
    }
此帖出自stm32/stm8论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表