欢迎来到天天文库
浏览记录
ID:12310334
大小:108.50 KB
页数:5页
时间:2018-07-16
《stm32 exti 中断系统 编程步骤》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、中断系统编程步骤:以“按K1(按键K1接到PB7管脚)产生一次EXTI中断,L3(L3接到PC13管脚)将闪烁一次。”为例。第一部分配置中断系统步骤一加入以下头文件:#include"stm32f10x_lib.h"//若使用RCC_Configuration();使能外设对应的时钟,还必须加入以下头文件。//若使用具体的使能外设时钟命令(例如,RCC_APB2PeriphClockCmd()等),则不需要加入以下头文件。#include"HelloRobot.h"//(包含RCC_Configuration、G
2、PIO_Configuration、USART_Configuration、NVIC_Configuration这3个函数的HelloRobot.h文件)步骤二GPIO配置:①定义用于初始化GPIOx端口参数的结构体变量GPIO_InitTypeDefGPIO_InitStructure;②使能GPIO端口外设对应的时钟(或RCC_Configuration();)RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);③定义GPIOx端口管脚、响应速度、工作模式,
3、即定义GPIO端口的初始化参数(通过为结构体变量GPIO_InitStructure的成员赋值实现):GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;GPIO_Init(GPIOB,&GPIO_InitStructure);④(调用函数GPIO_Init()来)初始化GPIOx端口,(完成对端口中的寄存器的
4、设置。)GPIO_Init(GPIOx,&GPIO_InitStructure);步骤三EXTI的配置:①定义用于初始化EXTI(外部中断/事件)参数的结构体变量:EXTI_InitTypeDefEXTI_InitStructure;②使能EXTI外设对应的时钟----注意:当使用EXTI外设时,使能的是AFIO时钟,而不是EXTI外设时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);③选择GPIO管脚,接EXTI线路-----EXTI编程特有的语句GPIO
5、_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource7);以下是定义EXTI的初始化参数④选择EXTI线路:(EXTI_Line0~EXTI_Line19)EXTI_InitStructure.EXTI_Line=EXTI_Line7;⑤选择EXTI的模式:(中断请求模式或事件请求模式)EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;⑥选择EXTI的触发方式:(上升沿触发、下升沿触发或上升沿和下升沿触发)EXTI_
6、InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;⑦选中的EXTI线路(在④中选中的EXTI线路)的中断使能或中断失能:ENABLE或DISABLEEXTI_InitStructure.EXTI_LineCmd=ENABLE;注:类似于:MCS-51单片机的各中断源的中断允许位(作为分控制位)置1:例如外部中断0的中断允许控制位EX0=1,定时器/计数器T0的中断允许控制位ET0=1.⑧(根据EXTI_InitStruct中指定的参数,调用函数EXTI_Init()来
7、)初始化外设EXTI,(完成对外设EXTI寄存器的设置。)EXTI_Init(&EXTI_InitStructure);注意:(i)EXTIx(外部中断/事件)源类似于MCS-51单片机的INT0、INT1外部中断源。(ii)当中断不是来自EXTIx,则程序中,就不需要写入与EXTI有关的程序。步骤四NVIC配置:①定义用于初始化嵌套中断向量控制器(NVIC)参数的结构体变量:NVIC_InitTypeDefNVIC_InitStructure;②配置优先级组:(第0组~第4组,即NVIC_PriorityGro
8、up_0~NVIC_PriorityGroup_4)-----NVIC编程特有的语句NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);以下是定义NVIC的初始化参数②选择中断通道(中断IRQ通道)NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQChannel;③选择该中断的抢先式优先级
此文档下载收益归作者所有