|
大多开发板按键LED例程里面,都用延时来消除抖动。这种方法,简单容易掌握。后来接触了状态机,就重新设计了按键LED代码,并且在官方板STM32L073RZ-Nucleo实验成功。 1.延时的缺点是:当功能比较多的时候,就会造成系统比较卡顿的现象,使系统运行不流畅,因为在延时里面,CPU是死等在那里。 2.状态机设计里面就取消了延时:MCU检测到按键后,定时器定时,达到一定时间后,继续扫描按键是否按下,然后计时按键按下的时间,当20ms以后按键还是按下状态,则执行按键操作,反之则认为是抖动。 项目代码见附件。 |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版
多线程编程,一个任务一个线程。当一个线程在进行延时等待时,让CPU处理其他任务。
线程池,相比一任务一线程,更加节约资源。可以实现多个任务更少线程,比如10个任务3个线程。
并行编程Task Parallel Library,一个线程多个任务,任务中镶嵌其他任务。
原子操作,互斥体,信号量。跑上了操作系统,各种优化设计。
不客气~
本文主要是想通过简单的按键编程,阐述状态机设计的思想。状态机的应用远远不止于此。