stm32 exti 中断系统 编程步骤

stm32 exti 中断系统 编程步骤

ID:18796548

大小:108.50 KB

页数:5页

时间:2018-09-24

stm32 exti 中断系统  编程步骤_第1页
stm32 exti 中断系统  编程步骤_第2页
stm32 exti 中断系统  编程步骤_第3页
stm32 exti 中断系统  编程步骤_第4页
stm32 exti 中断系统  编程步骤_第5页
资源描述:

《stm32 exti 中断系统 编程步骤》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、中断系统编程步骤:以“按K1(按键K1接到PB7管脚)产生一次EXTI中断,L3(L3接到PC13管脚)将闪烁一次。”为例。第一部分配置中断系统步骤一加入以下头文件:#include"stm32f10x_lib.h"//若使用RCC_Configuration();使能外设对应的时钟,还必须加入以下头文件。//若使用具体的使能外设时钟命令(例如,RCC_APB2PeriphClockCmd()等),则不需要加入以下头文件。#include"HelloRobot.h"//(包含RCC_Configuratio

2、n、GPIO_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线路-----EXT

5、I编程特有的语句GPIO_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的触发方式:(上升沿触发、下升沿触发或

6、上升沿和下升沿触发)EXTI_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中指定的参

7、数,调用函数EXTI_Init()来)初始化外设EXTI,(完成对外设EXTI寄存器的设置。)EXTI_Init(&EXTI_InitStructure);注意:(i)EXTIx(外部中断/事件)源类似于MCS-51单片机的INT0、INT1外部中断源。(ii)当中断不是来自EXTIx,则程序中,就不需要写入与EXTI有关的程序。步骤四NVIC配置:①定义用于初始化嵌套中断向量控制器(NVIC)参数的结构体变量:NVIC_InitTypeDefNVIC_InitStructure;②配置优先级组:(第0组~

8、第4组,即NVIC_PriorityGroup_0~NVIC_PriorityGroup_4)-----NVIC编程特有的语句NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);以下是定义NVIC的初始化参数②选择中断通道(中断IRQ通道)NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQChannel;③选择该中断的抢先式优先级

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。