你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L073RZ-Nucleo按键状态机

[复制链接]
ctang 发布时间:2017-10-13 09:55


大多开发板按键LED例程里面,都用延时来消除抖动。这种方法,简单容易掌握。后来接触了状态机,就重新设计了按键LED代码,并且在官方板STM32L073RZ-Nucleo实验成功。

1.延时的缺点是:当功能比较多的时候,就会造成系统比较卡顿的现象,使系统运行不流畅,因为在延时里面,CPU是死等在那里。


2.状态机设计里面就取消了延时:MCU检测到按键后,定时器定时,达到一定时间后,继续扫描按键是否按下,然后计时按键按下的时间,当20ms以后按键还是按下状态,则执行按键操作,反之则认为是抖动。


项目代码见附件。




固件#04--STM32L073RZ-Nucleo按键状态机.pdf

下载

100.19 KB, 下载次数: 46

LED_FSM_CODE.rar

下载

8.02 MB, 下载次数: 56

评分

参与人数 1 ST金币 +20 收起 理由
creep + 20 赞一个!

查看全部评分

收藏 4 评论9 发布时间:2017-10-13 09:55

举报

9个回答
ctang 回答时间:2017-10-13 10:29:58
MrJiu 发表于 2017-10-13 10:03
时间片,见真晓!!!

多线程编程,一个任务一个线程。当一个线程在进行延时等待时,让CPU处理其他任务。

线程池,相比一任务一线程,更加节约资源。可以实现多个任务更少线程,比如10个任务3个线程。

并行编程Task Parallel Library,一个线程多个任务,任务中镶嵌其他任务。

原子操作,互斥体,信号量。跑上了操作系统,各种优化设计。
MrJiu 回答时间:2017-10-13 10:03:02
时间片,见真晓!!!
creep 回答时间:2017-10-13 10:26:29
感谢分享!!!
ctang 回答时间:2017-10-13 10:33:22
creep 发表于 2017-10-13 10:26
感谢分享!!!

不客气~
斜阳__ 回答时间:2017-10-13 10:38:24
谢谢分享        
zld9251 回答时间:2017-10-13 10:42:42
多谢分享
biweismart 回答时间:2017-10-13 10:44:26
tangwenxiao 回答时间:2017-10-13 17:21:37
很多方法都可以处理的。定时器做延时。
ctang 回答时间:2017-10-13 17:23:59
tangwenxiao 发表于 2017-10-13 17:21
很多方法都可以处理的。定时器做延时。

本文主要是想通过简单的按键编程,阐述状态机设计的思想。状态机的应用远远不止于此。

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版