用STM32做矩阵键盘、自己理解的外部中断方式的几个问题。
发布网友
发布时间:2022-05-01 13:52
我来回答
共3个回答
热心网友
时间:2023-10-16 08:49
EXTI是边沿触发的。
当你按下键时,肯定会出现抖动,那抖动一次就是一个边沿,自然会一次次的触发中断了。我以前也试验过,很不好使。
用systick扫描是一个办法,我用这个实现了线反转法扫描4X4的键盘矩阵。设置10ms中断一次,每次进中断首先检查有没有按键,如果没有就pass,如果有就先计个数再退出,重复三次操作确定都有按键(也就完成了消抖),然后翻转线路状态扫描一次确定行列位置,这样就确定键值了。
热心网友
时间:2023-10-16 08:49
我觉得扫描方式比中断好。对每个键,定义一个字节用来消抖,每扫描一次就把键的0或1移位至这个字节,判断这个字节如果是0xff那么这个键被按下,如果0x00那么这个键未被按下,其它值不做操作,这种方法很简单,消抖效果也不错。
热心网友
时间:2023-10-16 08:50
中断相应的及时性 是直接在中断程序进行处理
用STM32做矩阵键盘、自己理解的外部中断方式的几个问题。
当你按下键时,肯定会出现抖动,那抖动一次就是一个边沿,自然会一次次的触发中断了。我以前也试验过,很不好使。用systick扫描是一个办法,我用这个实现了线反转法扫描4X4的键盘矩阵。设置10ms中断一次,每次进中断首先检查有没有按键,如果没有就pass,如果有就先计个数再退出,重复三次操作确定都...
stm32怎么样?
STM32是一种由意法半导体(STMicroelectronics)公司设计和生产的单片机系列,广泛用于嵌入式系统、物联网(IoT)设备、汽车电子、工业自动化等领域。STM32具有以下优点:1. 低功耗:STM32单片机通常具有较低的功耗,使其适用于便携式设备和物联网设备等需要长时间运行的应用。2. 灵活性:STM32单片机具有丰富的外设接口,方便与外部器件进行通信和控制,适用于各种应用场景。3. 可编程性:STM32单片机支持灵活的编程语言和开发工具,使开发者能够更加方便地进行程序设计和调试。4. 高性能:STM32单片机通常采用低功耗处理器、高速存储器和高性能外…stm32怎么样?这个问题不能一概而论,要根据您的具体情况进行分析。意法半导体单片机产品线拥有业界很宽广、极具创新力的32位产品系列 – STM32,覆盖超低功耗、超高性能方向,同时兼具很强的市场竞争力。STM32是ARM Cortex内核单片机和微处理器...
STM32矩阵键盘求教。在加上延时,软件去抖动的时候,程序就会在某一个...
最好是循环完了,发现了按下的键,再进行去抖,而不是在循环的过程中去抖,否则造成循环执行的时间过长,无法在键按下时检测到(即在按下某个键后再松掉的过程中,没有循环到对这个键的检测)。
矩阵按键如果有误触发需要怎么处理
这个原理是外部中断,就是需要一个外部动作(事件),才可以触发下一动作(事件)的发生。一般是把矩阵键盘的行(列)输出信号相与以后接入单片机的外部中断口,程序里将这个外部中断设置为低电平出发就可以了。当没有按键动作的时候,矩阵键盘的输出信号线相与结果为高,不会触发外部中断的键盘扫描程序,有...
stm32矩阵键盘长按的问题
u8 GetKEY(void);//按键扫描 按下时返回1-16,不按时返回0,这个你自己写吧 u8 LockFlag = 1;//0代表有键按下u8 KEY;//键值 //主程序或者中断中循环执行下边的程序 KEYValue = GetKEY();if(KEYValue){ if(LockFlag) { LockFlag = 0; KEY=KEYValue; }}else{LockFla...
STM32 4*4矩阵键盘的疑惑 程序中通过扫描方式实现,但不能实现功能。调用...
GPIO_Write(GPIOB,(GPIOB->ODR & 0xfff0 | 0xf))这个地方是说!你先把GPIOB口的输出寄存器低四位清零,让后在把他与0xf相与在把低四位置高。GPIOB是32位寄存器所以,0xfff0正好是32位,那个0xf是0x0f的意思!
单片机矩阵按键多键问题
什么叫不能井字触发啊 做矩阵键盘本来就需要交叉 不然哪来那么多按键 比如用P0口做矩阵键盘 高四位为横 低四位为竖 交叉处用按键连接 关键就是编程的问题了 一般有扫描法和线反转法 不会有你说的按下三个键触发第四个键 如果要用中断 硬件上不想连二极管用个与门接外部中断0也行 那肯定是...
stm32程序如下,为什么按下矩阵键盘,led灯不亮呢
这段程序没有错误.如果你就JTAG的话建议使用在线仿真(具体教程请百度吧,不算复杂),在switch(x)处设置断点,当程序执行到那里就暂停了,可以看到x的值是多少,这样有助于你查找错误.如果没有的话建议买一个,也不贵,五六十就可以买到.很方便的东西 ...
STM32 串口编程 操作数码管后无法进入接收中断
应该是你在执行数码管写的时候重新配置了A端口,使串口失效,你可以在数码管操作完之后 马上配置回原来的配置,不过最好是把这两个分开,因为你配置来配置去的,很可能会丢失数据
51单片机运行程序,矩阵键盘和外部中断同时用到P3.2这个IO口该怎么解决...
先向矩阵键盘的I/O口全部写1,再读P3.2口),若是矩阵键盘动作,则 return; 退出中断,否则执行中断程序;注意外部中断要选下降沿触发,否则中断会一直响应。同样矩阵键盘程序也要注意P3.2口单独为0时不作处理,避免外部中断造成键盘混乱。当然这样的程序肯定会有BUG ,就是几率大小的问题。
基于51中断方式的矩阵键盘怎么弄啊?
这个原理是外部中断,就是需要一个外部动作(事件),才可以触发下一动作(事件)的发生。一般是把矩阵键盘的行(列)输出信号相与以后接入单片机的外部中断口,程序里将这个外部中断设置为低电平出发就可以了。当没有按键动作的时候,矩阵键盘的输出信号线相与结果为高,不会触发外部中断的键盘扫描程序,有...