没有合适的资源?快使用搜索试试~ 我知道了~
首页STM32之EXTI——外部中断
资源详情
资源评论
资源推荐

STM32之之EXTI——外部中断外部中断
互联网的广大网友,大家早上中午晚上好、EXTI、、、故名思义、、EX表外,出、、I表示Intrrupt、、所以合
起来就是外部中断、、、说到这、、我觉得我最近的六级水平(背单词)又进了一步,稍微自夸了下下、、英
语重要呀、、所以各位要多读英语呀、、、
之前的51单片机也有外部中断0和外部中断1、咦?强大的STM32怎么能输给51呢是吧、、根据“葵花宝典”第STM32篇参考手
册中明文规定:112通用I/O端口以下图的方式连接到16个外部中断/事件线上:
有看出点什么猫腻来没??看出来的有赏喔、、世上最残酷的惩罚就是放一大堆美女和金钱在你面前却不是你的、、、好了、
、这么久没人回答、我就当你们看不出了哈,我来说说:为什么是只有16个外部中断,但可以通杀112呢?你看----7进1出、、
啊哈、、你懂了吧、、也就是EXTI0管PA0~PG0,以此类推、、
那好,要怎么使GPIO口跟外部中断扯上关系呢?、回想下51的外部中断、、51的外部中断是第二功能、属于IO口复用,同
样,要使用STM32的外部中断,也就是IO口的复用功能,也必须开启IO口的复用功能是吧、、我的钱是我的,你的钱也是我
的、、我想用的时候必须把你的钱拿来是吧、、这就是相当于复用,
这里又涉及到IO口了、、所以呢??第一步就要初始化IO口是吧、、没错、、因为我是用按键触发外部中断的、、所以、、
、至于这段代码为啥?忘记的请看STM32之GPIO口操作
这里要提醒下、、因为外部中断、、知道为什么是外部吗??在我的理解:就是从外部引入触发,也就是人为的给触发、、所
以IO口要设置为输入(仅代表本人观点,如有雷同,不胜荣幸)
void KEY_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;//PE2~4
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOE, &GPIO_InitStructure);//GPIOE2,3,4
11 // WK_UP-->GPIOA.0
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_Init(GPIOA, &GPIO_InitStructure);//GPIOA.0
}
初始化了IO口,接下来我们要干嘛呢??“拿别人的钱”是吧、、对了、、就是我说的复用、、即打开IO口的复用,参照一下代
码:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
好了、、拿了别人的钱我们总得做点事是吧、、接下来、、你要触发中断、、你总得把中断和IO口的关系给连接上是吧、、



















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1