注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小哲

从今以后,你会是所有幸福的理由!

 
 
 

日志

 
 

STM32 EXTI(二)  

2012-01-10 13:42:41|  分类: ARM7-STM32 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#include "exti.h" 
 
void EXTI_Config(void

    EXTI_GPIO_Config(); 
    EXTI_InitStructure(); 
 

 
void EXTI_GPIO_Config(void

    GPIO_InitTypeDef GPIO_InitStructure; 
 
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); 
 
 
    NVIC_Exti(); 
 
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14 | GPIO_Pin_15; 
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; 
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉输 
    GPIO_Init(GPIOE, &GPIO_InitStructure); 
 
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11; 
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; 
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; 
    GPIO_Init(GPIOB, &GPIO_InitStructure); 

 
void EXTI_InitStructure(void

    EXTI_InitTypeDef EXTI_InitStructure; 
    EXTI_InitStructure.EXTI_Line = EXTI_Line14; 
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; 
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; 
    EXTI_InitStructure.EXTI_LineCmd = ENABLE; 
    EXTI_Init(&EXTI_InitStructure); 

 
void NVIC_Exti(void

    NVIC_InitTypeDef NVIC_InitStructure; 
    NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn; 
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; 
    NVIC_Init(&NVIC_InitStructure); 

 
 
 
/********************************************************************************* 
*********************************************************************************/ 
#include "exti.h" 
 
/* 
 * 函数名:NVIC_Configuration 
 * 描述  :配置嵌套向量中断控制器NVIC 
 * 输入  :无 
 * 输出  :无 
 * 调用  :内部调用 
 */ 
static void NVIC_Configuration(void

    NVIC_InitTypeDef NVIC_InitStructure; 
 
    /* Configure one bit for preemption priority */ 
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); 
 
    /* 配置P[A|B|C|D|E]0为中断源 */ 
    NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; 
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; 
    NVIC_Init(&NVIC_InitStructure); 

 
/* 
 * 函数名:EXTI_PB0_Config 
 * 描述  :配置 PB0 为线中断口,并设置中断优先级 
 * 输入  :无 
 * 输出  :无 
 * 调用  :外部调用 
 */ 
void EXTI_PB0_Config(void

    GPIO_InitTypeDef GPIO_InitStructure; 
    EXTI_InitTypeDef EXTI_InitStructure; 
 
    /* config the extiline(PB0) clock and AFIO clock */ 
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); 
 
    /* config the NVIC(PB0) */ 
    NVIC_Configuration(); 
 
    /* EXTI line gpio config(PB0) */ 
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; 
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;     // 上拉输入 
    GPIO_Init(GPIOB, &GPIO_InitStructure); 
 
    /* EXTI line(PB0) mode config */ 
    GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource0); 
    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); 

 
 
 
/********************************************************************************* 
*********************************************************************************/ 
#include "stm32f10x_it.h" 
void EXTI15_10_Handler(void

    if(EXTI_GetITStatus(EXTI_Line14) != RESET) //确认产生了EXTI Line中断 
    { 
 
        GPIO_ResetBits(GPIOE, GPIO_Pin_3); 
        EXTI_ClearITPendingBit(EXTI_Line14);    //清除中断标志位 
    } 

 
 
 
 
 
/* 
*注意:中断服务程序函数名有两种命名方法 
*            EXTI0_IRQHandler 
*            EXTI9_5_IRQHandler 





*/ 
  评论这张
 
阅读(903)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017