stm32简单按键中断

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

stm32简单按键中断

stm32快速学习3——简单按键中断2011-01-31 09:58:54| 分类:STM32 | 标签:优先级stm32 中断led |字号大中小订阅2个按键中断,控制2个LED

Main文件

#include "stm32f10x.h"

void RCC_Configuration(void);

void GPIO_Configuration(void);

void EXTI_Configuration(void);//外部中断设置

void NVIC_Configuration(void);//中断优先级别设置

unsigned char led_bit1=0;

unsigned char led_bit2=0;

int main(void)

{

RCC_Configuration();

GPIO_Configuration();

EXTI_Configuration();

NVIC_Configuration();

GPIO_SetBits(GPIOA, GPIO_Pin_0);

GPIO_SetBits(GPIOA, GPIO_Pin_1);

while(1);

}

void RCC_Configuration(void)

{

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);

}

void GPIO_Configuration(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_8 ; GPIO_InitStructure.GPIO_Mode =

GPIO_Mode_IN_FLOATING;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure);

}

void EXTI_Configuration(void)

{

EXTI_InitTypeDef EXTI_InitStructure;

GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,

GPIO_PinSource3);

EXTI_InitStructure.EXTI_Line = EXTI_Line3;

EXTI_InitStructure.EXTI_Mode =

EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger =

EXTI_Trigger_Falling;

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,

GPIO_PinSource8);

EXTI_InitStructure.EXTI_Line = EXTI_Line8;

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_Configuration(void)

{

/*

查看固件库手册,关于中断部分NVIC_IRQChannel

PA3、PA8分别设置

EXTI3_IRQChannel 外部中断线3 中断

EXTI9_5_IRQChannel 外部中断线9-5 中断

关于中断线,查看STM32 Reference Manual 的9.2.5 外部中断/事件线路映像

stm32使用了4个位来保存优先级别

查固件库

Table 273. 先占优先级和从优先级值

占先优先级->主

副优先级->次

号码越小,等级越高判断主的级别->一个高一个低->ok 判断主的级别->两个都相同->判断次的级别->一个高一个低->ok

判断主的级别->两个都相同->判断次的级别->两个都相同->按照列表顺序运行

*/

NVIC_InitTypeDef NVIC_InitStructure;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //占先优先级、副优先级的资源分配

NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn; //指定中断源

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //占先优先级设定

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

//副优先级设定

NVIC_InitStructure.NVIC_IRQChannelCmd =

相关文档
最新文档