//抢占级别高的会打断其他中断优先执行,而响应级别高的会在其他中断执行完优先执行。
//EXTI:外部中断/事件控制器
//EXTI 控制器可以产生高达 19 个软件事件/中断请求
//将 19 根线配置为中断源,将 19 根线配置为事件源,将 19 根线配置为软件中断/事件线,
详见《STM32F103xxx 使用手册》
//P135
//在这个文件中主要是进行各种初始化配置,包括 GPIO 配置、EXTI 配置、系统时钟配置
等
//中断服务程序则在 stm32f10x_it.c 文件中,该文件提供所有异常处理程序和外围中断服务
程序的模板,详见该文件。
#include "stm32f10x_lib.h"
EXTI_InitTypeDef EXTI_InitStructure; //定义外部中断初始化结构体变量,内部含有 4 个成
员。//详见 EXTI_InitTypeDef 的定义
ErrorStatus HSEStartUpStatus; //定义错误状态变量,是枚举类型
void RCC_Configuration(void);
void GPIO_Configuration(void);
void NVIC_Configuration(void);
int main(void)
{
#ifdef DEBUG
debug();
#endif
RCC_Configuration(); //系统时钟配置
NVIC_Configuration(); //NVIC 配置
GPIO_Configuration(); //配置 GPIO
//STM32 的外部中断不是固定的,是可以映射的。如 EXTI6 既可以映射到 PB6 也可以映
射到 PA6,详见外部中断/事件与 GPIO 的映射关系
//将 IO 端口注册至中断线(将 IO 口映射到中断线 N)
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource6); //选择 GPIO 管脚用作
外部中断线路
//第一个参数选择用作外部中断线源的 GPIO 端口,第二个参数是待设置的外部中断线路,
可以是 GPIO_PinSourcex(x 可以 0~15)
//配置按钮中断线触发方式 设置中断配置结构体成员
EXTI_InitStructure.EXTI_Line = EXTI_Line6; //选择外部中断线 EXTI_Line0~EXTI_Line18
共 19 根线
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; // 设 置 为 中 断 请 求 , 可 以 为
EXTI_Mode_Interrupt 中断请求或者
//EXTI_Mode_Event 事件请求
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //触发方式下降沿触发 还可以为
EXTI_Trigger_Rising 上升沿触发或者
//EXTI_Trigger_Rising_Falling 上升沿下降沿触发
EXTI_InitStructure.EXTI_LineCmd = ENABLE; //中断线使能 ENABLE 使能,DISABLE
失能
评论0