两个不同的引脚用同一个外部中断,怎么才能让它们正确的产生相应的中断,芯片是STM32F4。比如:EXTI4这个外部中断,PA4引脚可以用,PB4引脚也可以用,但是PA4和PB4不是在同一时刻产生中断,怎么才能让它正确的分辨出正确的产生相应的中断,即不会把PA4产生的中断认为是PB4产生的,同样也不会把PB4产生的中断认为是PA4产生的。
在不改电路的情况还有其他办法?
追答就用上面的办法。
把按键拆了换成电容按键
当然还有一种最简单的办法。那就是在中断里度pe5 和 pb5哪个口是低电平 ( ̄▽ ̄)ノ ,简单吧
本回答被提问者和网友采纳STM32两个按键怎么用同一个外部中断???
我能想到的两个解决方案:第一个就是使用AD采集电压,两个按键按下后分别接通不同电阻产生不同电压,使用一路AD采集即可分辨不同按键。不过这样虽能实现但是很笨拙,大材小用。还不如更改电路。还有一种高级方式是换用电容按键,给予不同电容,区分两个按键的充放电时间常数也可以区分按键。不过这两种方...
普中stm32怎样同时使用外部中断0和1
普中stm32同时使用外部中断0和1的步骤如下:1、需要将外部中断0和1的输入引脚连接到相应的外部信号上。在STM32的硬件配置中,选择相应的引脚作为外部中断输入。2、在STM32的软件配置中,启用外部中断0和1。这通常通过设置相应的中断使能位来完成。3、根据需要,配置外部中断0和1的模式。可以选择边沿触发...
STM32外部中断配置方法讲解
STM32单片机的每一个GPIO都可作为外部中断输入,分为PA0-PG0为EXTI0组,PA15-PG15为EXTI15组,共16组,同一时刻仅一组可工作,最多允许16个外部中断。STM32的外部中断触发方式为边沿触发,支持上升沿和下降沿触发。配置STM32外部中断的步骤包括初始化GPIO、配置中断源、设置触发方式、启用中断等,涉及...
STM32的外部中断问题
问题1,EXTI0~EXTI15每个对应于一组(PA,PB,PC,PD..)1,在用外部中断的时候如用EXTI4(外部中断4)需要配置PA4还是PB4...这几组io口的第四个管脚作为输入,只能选择一个。问题2,void EXTI_Configuration(void) 中断初始化函数 EXTI_InitTypeDef EXTI_InitStructure; 定义EXTI_InitStructure为中断配...
用STM32做矩阵键盘、自己理解的外部中断方式的几个问题。
当你按下键时,肯定会出现抖动,那抖动一次就是一个边沿,自然会一次次的触发中断了。我以前也试验过,很不好使。用systick扫描是一个办法,我用这个实现了线反转法扫描4X4的键盘矩阵。设置10ms中断一次,每次进中断首先检查有没有按键,如果没有就pass,如果有就先计个数再退出,重复三次操作确定都...
STM32中断函数怎么用?
以STM32F103VB系列为例,100pin, 一般我们通常使用的IO对应外部中断线如下: PA0,PB0,PC0,PD0,PE0 对应的是EXTI0中断线; 以此类推 到PA15,PB15,PC15,PD15,PE15对应EXTI5中断线。STM32里面EXTI0 – EXTI4这5个外部中断有着自己的单独的中断就表示哪个中断被触发。你打开stm32的启动文件,例如...
STM32共用中断线的外部中断引脚的判断
同时配置了多个管脚(比如,PE1,PA1,PB1)的中断到同一中断线(比如EXTI_LINE1),只有最后的一个配置生效(PB1有 效,PE1,PA1进不了中断)
stm32中断编程要求:2个中断,2个优先级,2个初始化函数
(2)NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn;\/\/选择中断类型也就选择外部中断0,这些语句其实stm32都给我们,中断名称在IRQn_Type结构体中为我们定义好了,我们只需要选择一个我们要用的中断就好了,stm32f10xx.h中我们可以找到它。(3)NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01;\/...
stm32中这两种对比怎么看出来是不是产生中断的
首先外部信号从编号1的芯片管脚进入,经过编号2的边沿检测电路,通过编号3的或门进入中断挂起请求寄存器,最后经过编号4的与门输出到NVIC中断检测电路,这个边沿检测电路受上升沿或下降沿选择寄存器控制,用户可以使用这两个寄存器控制需要哪一个边沿产生中断,因为选择上升沿或下降沿是分别受2个平行的寄存器控制...
利用stm32的单片机完成下面的要求,程序该怎么写,用C语言
用两个定时器分别对两个LED灯闪烁,KEY1和KEY2要设置为外部中断输入,当进入中断时KEY1_DANG或KEY2_DANG指向下一个档位,并且发送串口。给你提供点思路。void main(){ while(1){ if(key1_dang==0x01)中断定时1设置为0.2秒 if(key1_dang==0x02)中断定时1设置为0.4秒 if(key1_dang==0x...