我要用嵌入式知识配置4个按键的中断,下面是stm32外部中断的初始化函数的参考代码,该怎么修改。

EXTI->RTSR|=1<<0;EXTI->IMR|=1<<0;SYSCFG->EXTICR[0]&=~(0x0f<<(0*4));NVIC_SetPriorityGr... EXTI->RTSR |= 1 << 0;
EXTI->IMR |= 1 << 0;
SYSCFG->EXTICR[0] &= ~(0x0f << (0 * 4));
NVIC_SetPriorityGrouping(7 - 3);
Priority = NVIC_EncodePriority((7-3),4,0);
NVIC_SetPriority(EXTI0_IRQn,Priority);
NVIC_EnableIRQ(EXTI0_IRQn);

四个按键分别为PA0 PE2 PE3 PE4
展开
 我来答
匿名用户
2019-04-09
展开全部

寄存器配置一定要看手册来配,不然谁会

STM32的GPIO多很多,所有的GPIO口都可用作外部中断,但同组的只能选择一个,如GPIOA的第1脚与其他都是1脚(如GPIOC的第一脚)的归为一组,所以SYSCFG->EXTICR[0] &= ~(0x0f << (0 * 4));这句是来配置外部中断0的中断线选择GPIOA的,即GPIOA的第0脚;

EXTICR[0]是选择外部中断0到3的,其他以此类推。

例如你的按键为PC5,则你选择外部中断5,

SYSCFG->EXTICR[1] &= ~(0x0f << (1 * 4));

配置成上升沿触发EXTI->RTSR |= 1 << 5;

或者配置成下降沿触发EXTI->FTSR |= 1 << 5;

或者两者都行,这需要看你的外部电路,按下由低电平转高则选上升沿

最后开放对应中断线的请求EXTI->IMR |= 1 << 5;

后面那几行根据你的要求写中断分组,中断优先级,最后写你的中断函数

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式