首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

STM32状态机编程实例——全自动洗衣机(上)

STM32按键消抖——入门状态机思维 STM32按键状态机2——状态简化与增加长按功能 STM32按键状态机3——增加双击与功能优化 本篇,继续使用状态机编程,来实现一个更有趣的功能——全自动洗衣机。...1 全自动洗衣机功能分析 下面是一个全自动洗衣机的控制面板: 面板上有4个按键: 电源:控制洗衣机通电与断电 水位:选择洗衣时需要的水位,有1~8个水位 程序:选择不同的洗衣模式,有1~10个模式 01...需注意的是: 实际的洗衣机有水位检测传感器,本篇中,暂用时间延时模拟水位的增加,且默认开机时水位为0 实际的洗衣机中的洗衣模式,会根据不同的模式自动设置清洗次数与每次清洗的时间以及清洗力度,本篇为了简化起见...,以及我们自己使用洗衣机时的经验,可以画出如下的全自动洗衣机的状态图: 首先是上电开机,洗衣机可能会开机自检,检测洗衣机的各个部件是否正常,次过程很短。...3 编程实现 3.1 多按键检测功能 本篇介绍的洗衣机的按键,仅需要检测按键单击即可,不需要双击与长按功能,因此,可使用之前文章介绍的最基础的按键状态机来为洗衣机状态机提供按键事件。

84720

STM32状态机编程实例——全自动洗衣机(下)

上篇文章:STM32状态机编程实例——全自动洗衣机(上) 通过状态机编程,实现了全自动洗衣机的逻辑控制,并通过串口打印的方式显示各个状态。...可以使用这个在线网页来进行图片数据的转换:https://tools.clz.me/image-to-bitmap-array 这里可以使用自己喜欢的图片,进行展示,比如我选取了不同水量的洗衣机图标来显示洗衣机的当前水量...,使用多张图片的交替显示产生洗衣机在清洗的动画效果。...typedef struct { WASHER_STATUS washerStatus; /*洗衣机的工作状态*/ int targetWaterLevel; /*洗衣机的目标水位*/...4 总结 本篇在上篇全自动洗衣机的状态机编程实例的基础上,增加了OLED来更新直观的展示洗衣机的工作状态,并通过3种测试场景来展示洗衣机工作状态机的执行。

55820
您找到你想要的搜索结果了吗?
是的
没有找到

6.计算机语言的发展 编程语言发展 编程语言类型 为什么会有编程语言 编程语言什么作用 机器语言 高级语言分类 编程语言历史 编程语言有哪些 编程语言编年史

语言 计算机语言指用于人与计算机之间通讯的语言,也即是平时说的编程语言 编程 指令的概念很早就形成了,其实指令本身就是一种编程 一个指令替代了一组逻辑电路或者机电式/机械式中的一个计算单元 你只需要一个指令就相当于已经操作了一整个的模块...这不也是一种编程的思维吗,只不过是指令对应硬件 随着指令在现代计算机中的应用,计算机程序得以快速的发展 因为一旦你知道计算机可以执行哪些指令,其实也就是哪些功能,具有哪些能力 你就可以把这些指令按照一定的逻辑顺序重排组装...不同的机器有不同的汇编语言 需要汇编程序翻译成计算机可以识别的二进制机器语言 本质还是面向机器的低级语言 机器语言和汇编语言都是面向硬件的具体操作的,语言对机器过分依赖,所以称之为低级语言 高级语言...为了能够更加通用的解决问题,而不是专注于硬件本身,出现了高级语言 高级语言不用关注机器的指令,使用接近人习惯的自然语言和数学语言符号 能够专注于问题本身的业务逻辑 显然高级语言也是不能直接运行于机器上的...,需要翻译程序转换为机器可以执行的目标代码程序 虽然高级语言不涉及寄存器这些东西,不需要你了解硬件 但是这是高级语言隐藏了她们,而不是说这些东西不存在不重要,所有的语言都逃不过这一关 始终是要编程机器语言

15.3K20

人类语言遇上编程语言

编程语言之间的相似之处比人们乍看上去的还要多得多。这意味着如果你很了解某一门编程语言,学习其他编程语言(至少同类型的编程语言)就变得十分容易。...这也就是为什么好的软件公司在招人的时候并不十分介意你是否已经掌握了他们所需的编程语言技能,他们会转而去看你了解多少门编程语言,期望在你的简历上看到你已经掌握了许多足够多样化的编程语言,此时学习一门新语言对于你来说并非难事...了解一门编程语言意味着你了解如何在程序中自如地使用这些控制结构和控制流来表达思想。 不同编程语言之间的语法可能会有些许不同,但是编程语言之间基本的表达式大体是一样的。...一门没人愿意使用的编程语言能好到哪去? 在编程语言的表达能力和简洁程度上做出权衡是一门艺术。...谈到自然语言编程语言之间的差异,编程语言比自然语言更加严格,对错误的容许程度更低。这是因为人类语言具有显著的内置冗余机制,容许我们使用上下文来消除歧义。

10.8K60

如何选择编程语言以及编程语言的分类

想了解编程语言我们先要知道什么叫做“编程”,编程的意思就是编写流程,那么只要能编写流程的语言都应该叫做编程语言。...据不完全统计,所有编程语言加起来超过600种,其中用的比较多的也就前20种语言,Python不仅是其中一种而且这两年已经稳居第一名的宝座了。...9.jpg 一、低级语言和高级语言 计算机编程语言能够实现人与机器之间的交流和沟通,而计算机编程语言主要包括汇编语言、机器语言以及高级语言,具体内容如下: 汇编语言语言主要是以缩写英文作为标符进行编写的...高级语言 所谓的高级语言,其实是由多种编程语言结合之后的总称,其可以对多条指令进行整合,将其变为单条指令完成输送,其在操作细节指令以及中间过程等方面都得到了适当的简化,所以,整个程序更为简便,具有较强的操作性...二、交互原理 编程语言承接的就是人与机器之间的交互中介,程序员通过编程语言编写一段执行命令的流程代码,这段代码在执行前会被编译成底层语言,比如python就会直接编译成C语言,C语言计算机也是看不懂的,

12.6K00

编程语言分类

编程语言分类 编程语言就是人与计算机交流的介质 机器语言 计算机是通过高低电平来进行控制的,它只认识0和1,所以在最开始,在编程的时候都是使用0和1编写,这样可以直接操控计算机进行工作。...这个语言就是机器语言 优点:执行效率高 缺点:开发效率极低 汇编语言 汇编语言类似于机器语言,但是汇编语言只是把一串二进制数写成一个英文单词 优点(较于机器语言):开发效率高一点 缺点(较于机器语言):...执行效率低 高级语言 因为机器语言和汇编语言都是最接近底层的语言,对于一般人来说就跟天书一样,看都看不懂,更何况去编程呢!...所以为了让更多的人能够进行编程,使编程变得更加简单快速,前辈们绞尽脑汁,掉光了头发终于发明了高级语言,高级语言有如下优缺点: 优点(较于汇编语言):开发效率高 缺点(较于汇编语言):执行效率低(不直接和硬件交互...) 这样一般人也能够去进行编程了,但不同的武林高手发明的秘籍(高级语言)各有区别,可分为如下两大类: 编译型语言 解释性语言 编译型语言 大家都用过谷歌翻译,你把一段话粘贴到谷歌翻译上,他会给你一次性翻译成中文

7.9K20

编程语言常识

Python第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。...而C程序是运行前直接编译成CPU能执行的机器码,所以非常快 任何一种编程语言都有自己的一套语法,编译器或者解释器就是负责把符合语法的程序代码转换成CPU能够执行的机器码,然后执行。...函数可以同时返回多个值,但其实就是一个tuple 1.静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。...例如Java是静态语言 2.在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,所以Python是动态语言 3.变量在计算机内存中的表示:...现代操作系统和大多数编程语言都直接支持Unicode。 ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。

8.4K20

编程语言分类

面对纷繁复杂的应用领域和场景,自计算机诞生至今,已经发明和衍生出众多优秀的编程语言,来满足不用领域和场景的要求。 对编程语言的归纳分类,可以从以下几个方面来做区分。...这里根据TIOBE编程语言热度排行榜(截止至2018年6月)Top 10的编程语言,来做一个简单的介绍和分类。...Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。...很多国外的大学,计算机专业的入门语言便是Python。国内也有少数大学,也在尝试用Python作为第一门编程语言。...通过上面对热度Top10编程语言的简单介绍,以思维导图的方式给一个分类汇总。

10.1K2218

编程语言常识

看图区别编程语言 什么是强类型、弱类型语言?哪种更好? 强类型语言 强类型语言是一种强制类型定义的语言,即一旦某一个变量被定义类型,如果不经强制转换,那么它永远就是该数据类型。...哪种类型语言更好取决于具体的应用和编程需求: 强类型语言通常更有助于代码的可维护性和稳定性,因为它们强制类型检查,减少了类型相关的错误。这在大型项目和团队协作中特别有用。...弱类型语言可能更适合快速原型开发和某些特定用途,因为它们提供了更大的灵活性。但要谨慎使用,以避免潜在的类型错误和不稳定性。 选择哪种类型系统通常取决于项目的需求、开发者的偏好以及编程语言的特性。...代表语言:JavaScript、Python、PHP、Perl、Ruby等 混合型语言 混合型语言它结合了编译型语言和解释型语言的特点,混合型语言允许开发者在需要时选择将代码编译成机器码、中间代码或其他形式...代表语言:C#、Java等 哪种更好? 编译型语言、解释型语言和混合型语言各有各的优势和适用场景,没有一种在所有情况下都是最好的。选择哪种语言取决于你的具体需求和项目要求。

12010

编程语言分类

编程语言的分类可以从三个角度出发: 角度一:编译型和解释型     编译型:即把源程序的每一条语句都编译成机器语言,并保存为二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,优点:执行速度很快...缺点:开发效率低,不能跨平台(例如C、C++等) 解释型:只在运行时才一条一条的解释成机器语言给计算机执行,优点:开发效率高,跨平台。...缺点:运行速度慢(例如“:python、php)  混合型:例如JAVA、C#(读作C Sharp,我以前以为读作c井,哈哈哈) 角度二:静态语言和动态语言   动态语言:即数据类型是在运行期间检查的...(例如java、c\c++) 角度三:强类型语言和弱类型语言 强类型语言(类型安全):强制数据类型定义的语言,即一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。...弱类型语言: 一个变量可以赋不同数据类型的值。 所以这里得出结论:python是一门动态解释型的强类型定义语言,C语言是一门静态编译型的强类型定义语言,而Java是一门静态混合型的强类型定义语言

7.8K21

机器学习和洗衣机的关系?

Horowitz 认为,洗衣机是自动化机器的一种,但是它没有“智能”,而机器学习也可以看作一种可以实现自动化的技术,人们用它打造的只不过是一台台智能时代的“洗衣机”。...然而我们并没有得到机器仆人,但好在我们有了洗衣机。 你可以说洗衣机就是机器人,但它们没有“智能”。它们并不知道水和衣服是什么。...此外,就算在洗涤领域中,洗衣机也并不是通用的:你不能把盘子放进洗衣机里,也不能把衣服放进洗碗机里(或者说,你可以这么做,但你不会得到想要的结果)。...这些都是自动化的一部分,你可以把它们看作一台台洗衣机。 因此,我们谈论机器学习的挑战之一,就是在数学的机械解释与幻想之间找到一个平衡点。...那么,对于真正的公司来说,机器学习的“洗衣机”到底是什么呢?我认为有两套工具可以用来帮助思考这个问题。首先是考虑数据类型和问题类型的流程: 那么,对于真正的公司来说,机器学习的“洗衣机”到底是什么呢?

38720

TCL智能洗衣机破解细节分析

对于洗衣机的攻击点分析 使用TCP智能洗衣机时需要对洗衣机进行配置,才能够接入网络,从而使用手机客户端进行远程控制。...我们可以通过简单的配置将设备通过wifi接入互联网,配置成功后就可以使用京东微联手机客户端来反向控制洗衣机,达到洗衣机设备能够通过手机远程控制的功能,这也就是为什么说这个型号的洗衣机是”智能洗衣机”的原因了...来模拟洗衣机登陆。 ? 使用从数据包分析出来的用户名和密码,登陆第三方云服务器。发现成功的用洗衣机账号登陆成功。 ? 获取控制指令 模拟洗衣机账号登陆成功后,模拟在线的洗衣机接收控制指令。...成功的使用另外一个洗衣机的账号,给目标洗衣机发送了控制指令。那么就说明目前已经对洗衣机有完全的控制权限。 ? 再使用前面获得的控制指令,控制洗衣机以800的转速开始甩干。...4.使用相同的密钥进行洗衣机终端端的认证。 5.洗衣机终端与洗衣机终端通信未进行隔离。 6.未对京东智能云平台下发的控制会话内容为进行过滤,导致任意洗衣机都可以发送控制指令。

3.1K81

Python 编程语言

Python 是一种高级、通用且非常流行的编程语言。Python 编程语言(最新的 Python 3)被用于 Web 开发、机器学习应用程序以及软件行业的所有尖端技术。...Python 编程语言非常适合初学者,也适合使用 C++ 和 Java 等其他编程语言的有经验的程序员。...这个特别设计的 Python 教程将帮助您以最有效的方式学习 Python 编程语言,主题从基础到高级(如 Web-scraping、Django、Deep-Learning 等)并附有示例。...以下是有关 Python 编程语言的一些事实: 1.Python 是目前使用最广泛的多用途高级编程语言。 2.Python 允许在面向对象和过程范式中进行编程。...3.Python 程序通常比 Java 等其他编程语言小。程序员必须键入相对较少的语言和缩进要求,使其始终可读。

6.3K40

编程语言简史

欢迎关注,有任何问题可发送私信~ 在人类历史的长河中,编程语言作为计算机科学领域的重要分支,经历了漫长的发展历程。从最早的机器语言到现代的高级编程语言编程语言经历了从简单到复杂、从低级到高级的演变。...本文将回顾编程语言的发展历程,并分析各种编程语言的优缺点和适用场景。 一、机器语言 机器语言是计算机可以直接执行的二进制代码,由0和1组成。机器语言是最早的编程语言,也是最底层的编程语言。...高级编程语言的出现是计算机科学发展的重要里程碑之一,它使得更多的人可以参与到编程工作中来。 四、面向对象编程语言 面向对象编程(OOP)是一种编程范式,它将数据和操作封装在一起,形成一个独立的对象。...最早的面向对象编程语言是Smalltalk,随后出现了C++、Java等面向对象编程语言。面向对象编程语言的出现使得程序更加模块化、易于维护和扩展,提高了软件的开发效率和可重用性。...常见的AI编程语言包括TensorFlow、PyTorch等。 总结: 从机器语言到人工智能编程语言编程语言的发展历程见证了计算机科学的飞速进步。各种编程语言各有优缺点,适用场景也各不相同。

14210

Java 语言属于编译型编程语言还是属于解释型编程语言

,一类是解释型语言。...Java 语言是高级语言,而 Java 字节码是低级语言。字节码类似于机器指令,但它不是体系结构中立的,是可以在任何带 Java 虚拟机的平台上运行的。 ?...编译器把源程序的每一条语句都编译成机器语言,并保存为二进制文件,运行时计算机可以直接通过运行语言来运行此程序,速度会很快。...三、什么是解释器(Interpreter) 解释器是直接执行用编程语言编写的指令的程序。 只有在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度不如编译后的程序运行的快。...---- 总结 所以说,Java 语言既不属于编译型编程语言也不属于解释型编程语言,因为它由 Java 编译器编译为字节码文件,然后仍需要有 JVM 将字节码解释翻译为目标机器语言,先编译后解释。

6.9K31

​LeetCode刷题实战517:超级洗衣机

假设有 n 台超级洗衣机放在同一排上。开始的时候,每台洗衣机内可能有一定量的衣服,也可能是空的。...在每一步操作中,你可以选择任意 m (1 <= m <= n) 台洗衣机,与此同时将每台洗衣机的一件衣服送到相邻的一台洗衣机。...给定一个整数数组 machines 代表从左至右每台洗衣机中的衣物数量,请给出能让所有洗衣机中剩下的衣物的数量相等的 最少的操作步数 。如果不能使每台洗衣机中衣物的数量相等,则返回 -1 。...这道题用的方法很巧妙,时间复杂度只需要O(n),具体方法是首先计算出是否可以给每台洗衣机分配相等的衣服,如果可以就继续计算出每台洗衣机最终的衣服数量P,然后用当前数组减去P得出每台洗衣机需要的衣服或者多余的衣服...然后从第一个洗衣机开始计算当前需要还是多余的衣服数,然后计算第二个,因为这里无论第一个洗衣机多余衣服还是需要衣服都需要经过第二个洗衣机,第三个洗衣机相对于第二个也是同理,把数组种第一个的值加在第二个上面就是第二个洗衣机需要或者多余的衣服数

28020
领券