首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

ESP8266 WiFi物联网智能插座—下位软件实现

本篇博文开始讲解下位插座节点的MCU软件程序是如何实现。 1、软件架构 下位软件架构采用前后台控制系统,使用状态思维实现程序设计。.../handsome-man.blog.csdn.net/article/details/121195905 智能插座的控制器是ESP8266,需要在IDE中安装该开发包,如下图所示: 3、软件功能 下位软件整功能如下图所示...4.2、主循环状态 在主循环中使用1ms周期调度维护软件状态,节点运行有5种状态模式:初始化模式、配置模式、运行模式、重启模式和升级模式。...运行模式下可周期上报节点数据,以及支持上位控制继电器开关。...Log.warningln("updata timeout"); Log.warningln("switch reset state"); } } 5、程序功能特点 5.1、日志管理 下位支持日志管理

25730

ESP8266 WiFi物联网智能插座—上位下位通信协议

---- 本项目自定义了一套上位下位通信协议,协议并不复杂,包含:配置节点、控制节点继电器开关、节点周期上报数据、升级节点和重启节点功能。...在讲解通信协议前,需要先了解下位的4种运行模式,在不同的运行模式下,上位可以对下位有不同的功能权限,如下图所示: 只有在运行模式下,上位才可以切换到其他几种模式,其他模式无法执行切换模式操作。...只有在运行模式下,上位才可以控制继电器开关,其他模式无法控制继电器。 1、配置节点协议 配置节点是配置节点的ID、硬件版本、软件版本、出厂时间等信息,只有节点处于运行模式下发配置节点指令才有效。...响应成功,1:响应失败) uint16_t crc; // 校验位 }SendState_t; #pragma pack() 此时,节点处于配置模式下,可以接收上位下发的配置指令...响应成功,1:响应失败) uint16_t crc; // 校验位 }SendState_t; #pragma pack() 此时,节点处于升级模式下,可以接收上位下发的升级指令

40630

8051单片的C语言编程

本文为博主原创文章,转载请注明博客地址: https://blog.csdn.net/zy010101/article/details/80392902 8051的C语言编程和传统的...C语言编程是类似的。...当然其中有些数据类型是不一样的,我们知道8051支持强大的位寻址能力,因此8051的C语言编程增加了一些新的数据类型,为了不使的8051的能力被浪费。下面给出新增的数据类型。...例如:sfr16 DPTR = 0x82; 通过上面引入的数据类型,使得8051的C语言编程变得和普通的C语言编程基本一致。也充分利用了8051的特点。...最后,还是要谈到关于指针的问题,8051的C语言编程实际上还是很像汇编语言的,需要我们对内存区域进行直接操作。 指针在C语言里本来就很灵活,在这里我们还是要看看指针的存储类型。

1.6K30

单片开发之C语言编程基本规范

本规范主要针对单片编程语言和08编译器而言,包括排版、注释、命名、变量使用、代码可测性、程序效率、质量保证等内容。...1.基本规则 格式清晰、注释简明扼要、命名规范易懂、函数模块化、程序易读易维护、功能准确实现、代码空间效率和时间效率高、适度的可扩展性、单片编程规范-标识符命名 2.标识符命名 2.1 命名基本原则...注释语言必须准确、易懂、简洁。 边写代码边注释,修改代码同时修改相应的注释,不再有用的注释要删除。...单片编程规范-排版 5.1 缩进 代码的每一级均往右缩进4个空格的位置。不使用Tab键 5.2 分行 每行语句(?????...3) typedef和#define的用法 ① typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像

1.7K20

上位画面鉴赏

概述: 上位发出的命令首先给下位下位再根据此命令解释成相应时序信号直接控制相应设备。下位不时读取设备状态数据(一般为模拟量),转换成数字信号反馈给上位。...上下位都需要编程,都有专门的开发系统。 在概念上,控制者和提供服务者是上位,被控制者和被服务者是下位,也可以理解为主机和从的关系,但上位下位是可以转换的。...工作原理: 两如何通讯,一般取决于下位下位一般具有更可靠的独有通讯协议; 使用一些新的API(API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数...,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力; 多语言支持功能模块,一般同时支持数种高级语言为上位编程。...经验: 通常工控,工作站,触摸屏作为上位, 通信控制PLC,单片等作为下位,从而控制相关设备元件和驱动装置。

3.1K30

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

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

15.3K20

新的虚拟平台GraalVM,编程语言可以无缝沟通了

“全能”的GraalVM GraalVM 是一个跨语言的通用虚拟,不仅支持了 Java、Scala、Groovy、Kotlin 等基于 JVM 的语言,以及 C、C++ 等基于 LLVM 的语言,还支持其它像...它消除了编程语言之间的隔离。 ? GraalVM system diagram 这些语言可以通过GraalVM平台进行直接互操作,并在同一内存中传递数据。...这些不同的编程语言被Truffle(一种语言实现框架)进行统一的语法解释,交给Graal的JIT编译并交给运行时执行,从运行时的角度上来看这些语言没有任何区别的。 ?...多语言混合编程 在JVM上运行原生语言 开发云原生应用 微服务运行时平台 创建自己的语言 FaaS 5....目前在各个语言的性能基准上还不能统一,语言之间互操作的协议还需要完善,甚至还要牺牲特定编程语言的一些特性,比如Java Native Image目前无法使用动态加载,另外GraalVM也还没有经过大规模的生产实践

1.3K20

怎么用c语言编写单片流水灯程序,单片编程入门:单片流水灯程序

今天就来教教大家怎么玩玩51单片,当然了,首先有一个必要的条件就是你必须要会c语言,目前大学里面有开的关于微机原理的课的,上课的时候,老师还说:“你们要多学学汇编语言,对你们以后学习单片有用”,而事实上后来才发现...c语言才是最重要的。...要想玩单片,就必须要知道最重要的是什么,对于一块51单片的开发板来说,最重要的就是要认认真真的看它的原理图,原理图才是最重要的。...今天先说说最基本的,就是怎么玩流水灯,老样子,先看看原理图: 可以看到,总共是八个LED灯,都是由单片的P1口控制的,并且可以知道当端口为低电平时,灯就会亮,大家一定要注意这一点,目前市场上51的开发板还是有非常多的

1.4K10

人类语言遇上编程语言

编程语言之间的相似之处比人们乍看上去的还要多得多。这意味着如果你很了解某一门编程语言,学习其他编程语言(至少同类型的编程语言)就变得十分容易。...这也就是为什么好的软件公司在招人的时候并不十分介意你是否已经掌握了他们所需的编程语言技能,他们会转而去看你了解多少门编程语言,期望在你的简历上看到你已经掌握了许多足够多样化的编程语言,此时学习一门新语言对于你来说并非难事...了解一门编程语言意味着你了解如何在程序中自如地使用这些控制结构和控制流来表达思想。 不同编程语言之间的语法可能会有些许不同,但是编程语言之间基本的表达式大体是一样的。...一门没人愿意使用的编程语言能好到哪去? 在编程语言的表达能力和简洁程度上做出权衡是一门艺术。...由于常常事关重大,编程语言设计失败的成本是非常高的。特别是当你知道你的语言可能会被用于驱动交通灯控制、国际空间站机械臂、NASA的火箭、核弹头,核磁共振,亦或是你的下一款Facebook游戏的时候。

10.8K60

8.3 串口读写

例如,先获取串口包,node里的require类似C语言的include,C#里的using,java/python里的import。...只有特定的命令下位才会应答,该措施可以忽略信号干扰,也便于下位的巡检。另外命令最后两个字节是前面6位数据的CRC校验,如下位CRC校验不通过,则忽略该命令。 那如何向串口发送命令呢?...那是不是我电脑没有串口硬件,就不能做串口编程了呢?...非也,Eltima Virtual Serial Port Driver虚拟串口(提供45天免费试用)了解下,创建虚拟串口,就可以愉快的编程操作串口了。 虚拟串口解决了,那没有下位怎么办?...下载个免费的串口调试助手吧,很有用的,结合VSPD虚拟串口,就可以模拟你的电脑/笔记本连接了一个下位,网络很多站点提供下载。 ? ---- ---- ?

2.8K20

编程语言常识

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

8.4K20

编程语言分类

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

7.9K20

编程语言分类

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

10.1K2218
领券