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

沙粒的博客

 
 
 

日志

 
 

stm32:中断配置的步骤  

2016-08-29 22:51:12|  分类: stm32 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

使用外部中断的一般步骤

1、初始化I/O 口,

2、开启AFIO时钟

3、建立I/O口与中断线的映射关系,使用库函数

void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)

参数GPIO_PortSource表示I/O口,取值:GPIO_PortSourceGPIOx (A..G).

参数GPIO_PinSource表示中断线,取值:GPIO_PinSourcex(0..15).

4、初始化中断线,即配置结构EXTI_InitStructure,其成员

EXTI_Line:中断线,取值EXTI_Line0x(0~15)

EXTI_Mode:中断模式,取值EXTI_Mode_Interrupt(中断)EXTI_Mode_Event(事件)

EXTI_Trigger:触发方式,取值EXTI_Trigger_Rising(上升沿);EXTI_Trigger_Falling(下降沿);EXTI_Trigger_Rising_Falling(任意电平);

EXTI_LineCmd:使能中断线,取值ENABLE DISABLE

5、配置中断优先级,使用库函数NVIC_Init(&NVIC_InitStructure);结构NVIC_InitStructure成员配置。

NVIC_IRQChannel:中断通道号,定义见stm32f10x.hIRQn_Type结构。对大容量产品见STM32 specific Interrupt Numbers部分定义和 #ifdef  STM32F10X_MD #endif 之间的部分定义。

NVIC_IRQChannelPreemptionPriority:抢占优先级,取值:参考NVIC_Priority_Table

NVIC_IRQChannelSubPriority:响应优先级,取值:参考NVIC_Priority_Table

NVIC_IRQChannelCmd:中断通道使能,取值:ENABLE DISABLE

6、编写中断程序,中断源与中断服务程序(中断程序入口)对应,见startup_stm32f10x_hd.s 。中断线定义的中断程序名为,EXTI0_IRQHandlerEXTI1_IRQHandlerEXTI2_IRQHandlerEXTI3_IRQHandlerEXTI4_IRQHandlerEXTI9_5_IRQHandlerEXTI15_10_IRQHandler

7、中断程序格式:

void EXTI2_IRQHandler(void)

{

     //判断中断线状态

     if(EXTI_GetFlagStatus(EXTI_Line2)!=RESET)

     {中断程序}

     //消除中断标志                       

     EXTI_ClearITPendingBit(EXTI_Line2);     

}

  评论这张
 
阅读(136)| 评论(0)
推荐 转载

历史上的今天

评论

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

页脚

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