STM32F407 按键抖动 延时消抖

您所在的位置:网站首页 stm32按键中断消抖 STM32F407 按键抖动 延时消抖

STM32F407 按键抖动 延时消抖

2024-07-13 18:33| 来源: 网络整理| 查看: 265

按键抖动:

在机械按键的触点闭合和断开时,都会产生抖动,为了保证系统能正确识别按键的开关,就必须对按键的抖动进行处理。 按键的抖动对于人类来说是感觉不到的,但对单片机来说,则是完全可以感应到的,而且还是一个很“漫长”的过程,因为单片机处理的速度在“微秒”级,而按键抖动的时间至少在“毫秒”级。 单片机如果在触点抖动期间检测按键的通断状态,则可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,从而引起误处理。因此,为了确保单片机对一次按键动作只作—次响应,就必须考虑如何消除按键抖动的影响。

按键读取识别异常:根本是按键触发后电平不稳定,会有波动,端口能识别。使用代码延时,让CPU忽略电平波动 方法:使用延时消抖

中断模块: 解决作业一按键的冲突(CPU循环扫描检测按键事件)

中断模块能够帮我们去检测一些内定的一些异常事件源(中断检测内定异常,则给CPU报告异常)

1.内定事件异常 2.事件监听 3.报告异常 4.优先级:仲裁 5.收到中断响应决策 6.继续任务

STM32内部有很多固定的(编号列表)让中断模块检测的中断源(产生中断异常的源头动作)

GPIO模块,… NVIC模块,嵌套中断向量控制器,中断管理模块,NVIC管理的是全局中断,对中断优先级仲裁 EXTI模块,32中专门管理中断的模块

eg:usb插拔,以太网线插拔能对应扫描检测驱动 检测引脚电平变化:外部中断,22个外部中断,0-15是连接对应每组GPIO的0-15;

配置中断: 0.开启EXTI相关时钟RCC_ APB2PeriphClockCmd(RCC_ APB2Periph_ SYSCFG, ENABLE); 1.对应引脚使用GPIO_init();配置为输入模式 2.使用SYSCFG_ EXTILineConfig() ;选择一个引脚连接对应的一个外部中断线(EXTI0-15) 3.使用EXTI_init() ;选择模式(中断模式,事件模式(不会以中断机制处理))(上升沿,下降沿,都) 4.配置刚开启的外部中断优先级(中断管理,优先级管理)涉及:仲裁器 配置中断优先级函数NVIC_init(); 优先级: 抢占优先级(0-15):第一优先 响应优先级(0-15):第二优先 两个或者两个抢占优先级一样才考虑响应优先级

按键延迟消抖代码实现: #include void lightinit (void)//配置灯 { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3