GPIO外设功能官方介绍:
•Exti线可配置为3种不同模式
——中断
——事件
——都是
•可配置的Exti线可以配置3个不同的触发器
——上升
——下降
——都是
•当设置为中断模式时,可配置的Exti线有两个不同的中断挂起寄存器,允许区分哪个转换发生:
——上升边缘挂起中断
——下降
•Exti线0到15链接到GPIO引脚0到15。GPIO端口可以通过多路复用器进行选择。
Cube用法:
1、选择引脚,设为GPIO_EXTIx
2、左侧的NVIC的配置界面中NVIC选项卡对应的EXTI_LINEx INTERUPT勾上ENABELED,右侧可以修改中断优先级
3、配置界面中Code generation选项卡可以修改:各中断的初始化顺序(默认先初始化GPIO、外设时钟,再进行外设MSP初始化(中断是其一部分)。这里只可以修改各中断之间的初始化顺序)、是否生成中断服务函数、是否写入中断回调库函数(用于清位)
Cube帮我做的:
1、GPIO初始化(CUBE在main.c添加MX_GPIO_Init()已经做好)
时钟使能。
初始化结构体填写。包括引脚号、GPIO号、模式、上下拉电阻。没有速度设置。
2、外部中断初始化(也在MX_GPIO_Init()函数中)
配置NVIC(中断优先级)
使能中断请求:选择中断源(GPIO端口),设为中断、事件,设置触发条件,中断使能。
我还要做的:
stm32f1xx_it.c中填写中断服务函数