我是靠谱客的博主 留胡子手机,最近开发中收集的这篇文章主要介绍c语言状态机_单片机C语言 -- 基于条件选择的状态机编程技巧,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

感谢阅读本文,在接下来很长的一段时间里,我将陆续分享项目实战经验。从电源、单片机、晶体管、驱动电路、显示电路、有线通讯、无线通信、传感器、原理图设计、PCB设计、软件设计、上位机等,给新手综合学习的平台,给老司机交流的平台。所有文章来源于项目实战,属于原创。

阅读说明:

1、Keil4 C51工程网址:

httpsyunpan.360.cnsurl_yrivR7JxUxu

2、需要一定的C语言基础,才看得懂此文。

一、有限状态机

有限状态机是一种概念思想,把复杂的控制逻辑分解成有限个稳定状态,组成闭环系统,通过事件触发,让状态机按设定的顺序处理事务。

单片机C语言的状态机编程,是利用条件选择语句(switch -- case)切换状态,通过函数内部指令改变状态机状态,让程序按设定的顺序执行。

二、应用说明

1、要想使用状态机进行编程,需要将任务分解成有限个稳定状态。

2、举例说明

003828f87c8294b3586f12111495cd04.png

上图为按钮按键典型的动作图,可以提取为四个状态,分别为状态1 = 按键谈起状态、状态2 = 按键不稳定状态1、状态3 = 按键按下状态、状态4 = 按键不稳定状态2。

有限状态机实现如下:

31fc5280faa3039e61e1e155a29081d0.png

三、编程实例

以LoRa推送为例进行说明。

1、定义有限状态机:

de499fd218149ca3a12a6d60fcef74ef.png

共5个状态,请求数据、推送、验证、待机、唤醒。

2、主函数:

913e28e73736e2f2a5f730f49c5b52f2.png

执行有限状态机。

3、执行函数

8c694255b62c20541612f60ae84a5426.png

在执行函数中切换状态机的状态。

五、小结

单片机C语言的状态机编程,是利用条件选择语句(switch

case)切换状态,通过函数内部指令触发状态切换,让程序按设定的顺序执行。

状态机编程涉及的知识点很多,本文只是简要的介绍了下,仅仅起到抛砖引玉的作用,日后设计过程中,需要不断的总结经验,沟通交流,以达到真正的理解,灵活运用。

开源项目,开发工具,技术资料以及更多原创技术文章,请关注微信公众号。

硬件家园 yjjy168168168

作者:刘杰,软硬件技术10年,全职提供技术开发与技术服务、生产支持等。

最后

以上就是留胡子手机为你收集整理的c语言状态机_单片机C语言 -- 基于条件选择的状态机编程技巧的全部内容,希望文章能够帮你解决c语言状态机_单片机C语言 -- 基于条件选择的状态机编程技巧所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部