您查询的关键词是:app 代码自动生成工具 
下面是原始网址 https://www.csdn.net/gather_29/MtjaIgysMjk2MjEtYmxvZwO0O0OO0O0O.html 在 2021-08-15 04:00:05 的快照。

360搜索与该网页作者无关,不对其内容负责。

单片机代码自动生成 - CSDN
精华内容
下载资源
问答
  • fp = fopen("D:\\(34拍)丁香花(旋律).musicxml", "r");
  • 51单片机代码智能生成系统V1.6
  • AVR单片机代码生成器 avr单片机代码生成器.rar AVR , 代码生成
  • 瑞萨单片机代码生成软件
  • 自动生成串口波特率、定时器设置等,用于8051单片机自动生成汇编代码或c语言代码
  • 现代单片机代码生成工具ABOV单片机,可以自动生产初始化代码,
  • 51单片机智能代码生成工具,帮你快速生成所需代码。初学者必备工具。
  • 单片机代码生成工具

    2011-10-11 09:19:38
    工具会自动生成 C语言代码 如下 #include void InitUART(void) { TMOD = 0x20; SCON = 0x50; TH1 = 0xFD; TL1 = TH1; PCON = 0x00; EA = 1; ES = 1; TR1 = 1; } void main(void) { InitUART(); } void ...
  • 自动编程,如定时子程序,延时子程序,自动生成代码
  • 【深木】51单片机图形化积木式中文编程软件/c代码自动生成器/电路仿真
  • 本软件是一款单片机开发辅助工具,提供常用51系列单片机的参数计算和资料查询功能!
  • 单片机avr代码生成

    2010-04-06 12:39:23
    avr代码自动生成软件,简单实用,给编程带来极大的方便性,本人用过很长时间,感觉得心应手
  • 简洁强大的stm32 初始化代码生成器,比cubemx好用,可根据所需的资源配置,自动生成f1系类所有初始化代码
  • 单片微型计算机简称单片机,是典型的嵌入式微控制器(Micro Controller Unit),常用英文字母的缩写MCU表示...多功能C语言单片机代码生成器的开发设计能够帮助单片机编程人员提高编程的效率,大大减少高频代码的编写。
  • 单片机代码生成.a文件

    千次阅读 2020-07-16 08:57:03
    单片机代码生成.a文件 1、首先要把.c文件生成.o文件 2、然后再把.o文件生成.a文件。 具体操作步骤如下: (1)编译生成.o目标文件,如:gcc -c test.c 注:-c选项表示只编译生成.o目标文件. (2)使用ar命令...

    概述

        单片机开发中有时会遇到把项目中一部分功能外包或者模块外包出去,此时公司核心代码,又不想提供。那么就要提供.a文件给外包人员了,有些废话,本篇只要是讲解 .c文件怎么生成 .a文件步骤。

    1、环境:window10。

    2、安装gcc工具,在这,我安装了mingw这个工具。
    单片机中代码生成.a文件
    1、首先要把.c文件生成.o文件

    2、然后再把.o文件生成.a文件。

    具体操作步骤如下:

    (1)编译生成.o目标文件,如:gcc -c test.c     

      注:-c选项表示只编译生成.o目标文件.

    (2)使用ar命令生成.a库文件,如ar -rv test.a test.o  

     注:ar命令可以用来创建、修改库,也可以从库中提出单个模块。

    r:在库中插入模块(替换)。当插入的模块名已经在库中存在,则替换同名的模块。
    如果若干 模块中有一个模块在库中不存在,ar显示一个错误消息,并不替换其他同名模块。
    默认的情况下,新的成员增加在库的结尾处,可以使用其他任选项来改变增加的位置。

    v: 该选项用来显示执行操作选项的附加信息。

    注:我们可以跳过第一步,直接使用VSGDB生成的.o文件执行第二步。
        需要使用到的Dos命令:cd 跳转 dir查看(相当于linux下的ls) cls清屏(相当于linux下的clear)

    懒人做法:在windows环境下,制作.bat执行脚本程序,自动生成(.a文件)

    步骤如下:很简单,如果想搞点高大尚的东西,就去学习.bat脚本的使用

    1、新建文件夹:“an41908-(2d152ce)驱动”

    2、在文件夹里面新建“.txt”文件,再使用编辑软件打开它,输入
    ar -rv an41908.a AN41908.o  

    pause
    保存,再次把.txt文件名修改为.bat文件即可。
    如图所示:

    .bat脚本文件制作完成。双击它即可运行。

    总结:在这打个卡,记录一下。

    展开全文
  • AVR代码自动生成工具

    2014-08-29 16:04:26
    AVR代码自动生成工具
  • M atlab具有强大的分析、计算和可视化功能, 利用MATLAB 提供的专业工具箱, 可以方便、灵活地实现对自动控制、信号处理、通信系统等算法的分析和仿真, 是算法设计人员和工程技术人员不可缺少的软件工具。...
  • 基于Simulink的FPGA代码自动生成技术

    千人学习 2019-12-03 19:22:16
    课程主要讲解基于simulink的hdl coder模块组的使用方法,学会使用hdl coder搭建算法模型,校验模型并能自动生成可以...对于初学者,能掌握基于simulink的FPGA代码自动生成技术,会加速初学者开发复杂的FPGA算法的本领。
  • STM32库函数代码自动生成器V1.2破解无限制版,对于STM32单片机功能配置初始化很方便,不用查手册了。
  • MCU代码自动生成工具介绍文档编辑原标题:GoKit3二次开发-代码自动生成工具介绍前文需知1.什么是“代码自动生成工具”为了降低开发者的开发门槛,缩短开发周期,降低开发资源投入,机智云推出了代码自动生成服务。...

    MCU代码自动生成工具介绍

    文档编辑

    原标题:GoKit3二次开发-代码自动生成工具介绍

    前文需知

    1.什么是“代码自动生成工具

    为了降低开发者的开发门槛,缩短开发周期,降低开发资源投入,机智云推出了代码自动生成服务。云端会根据产品定义的数据点生成对应产品的设备端代码。

    自动生成的代码实现了机智云通信协议的解析与封包、传感器数据与通信数据的转换逻辑,并封装成了简单的API,且提供了多种平台的实例代码。当设备收到云端或APP端的数据后,程序会将数据转换成对应的事件并通知到应用层,开发者只需要在对应的事件处理逻辑中添加传感器的控制函数,就可以完成产品的开发。

    使用自动生成的代码开发产品,就不必再处理协议相关的部分了,开发者可以将节省出来的精力集中在产品的核心功能开发上。

    2.支持的平台

    自动生成服务支持的硬件方案有:独立MCU方案、SOC方案。其中独立MCU方案支持的硬件平台有:stm32f103c8x平台、通用平台(即“其他平台”);SOC方案支持的硬件平台有:ESP8266平台。

    MCU方案与SOC方案区别:

    方案

    说明

    MCU方案

    模组负责与云端信息的交互,通过串口与主控板(即MCU)进行通信,需要在MCU上进行协议解析与外设控制的开发。

    SoC方案

    节省一颗MCU芯片,利用模组内部资源完成传感器操作和产品逻辑。

    MCU方案中除了支持STM32平台,还可以将我们生成好的通用平台版代码移植到符合条件的任意平台,从而实现机智云所提供的各种功能(详细移植过程请查看《GoKit3二次开发–通用平台版移植说明》)。

    代码自动生成工具”的使用

    1.创建产品

    84961c1c7be3d9b983dfa2d39af9b4fa.png

    点击右上角创建新产品

    输入相应的产品信息后点击“保存”。

    82800eec0275808cf26d64b0408e72a9.png

    2.添加数据点

    添加相应的数据点

    4529d74c7248e706b11d61e1b6fb6354.png

    89ddd48ae549c0ac121a0f90d8beaf53.png

    添加成功后点击“应用”

    2cb9429188da19df7b24faab1fd83dbd.png

    3.生成目标平台代码注:如果之前没有定义数据点则无法使用自动生成代码服务。

    3.1 生成MCU方案代码

    定义好产品后,选择左侧服务中的“MCU开发”(假设采用的MCU是STM32F103C8x),选中硬件方案中的“独立MCU方案”,再选择“硬件平台”中的“stm32f103c8x”,最后点击“生成代码包”,等待生成完毕下载即可。

    注:如果是其他MCU芯片,请选择“其他平台”选项,然后将生成的代码包移植到使用的平台,移植方法参考《GoKit3二次开发-通用平台版移植说明》。

    24fc46b443a60b1e4d873f209cc515fd.png

    90054d5465c54630af600bc35d9799ca.png

    3.2 生成SoC方案代码

    定义好产品后,选择左侧服务中的“SoC开发”(假设使用的SoC芯片是esp8266),选中硬件方案中的“SoC方案”,则选择“硬件平台”中的“esp8266”,最后点击“生成代码包”,等待生成完毕下载即可。

    8d3266dd0ab24fe292e618be1e5001dd.png

    下载完成后解压如下

    45b078ce25dd3d747c46b03d3733da0d.png

    自动生成代码说明

    1. STM32平台文件说明

    c7fbc1297855f71d4e471e247b98be50.png

    主要文件说明:

    文件

    说明

    gizwits_product.c

    该文件为产品相关处理函数,如 gizEventProcess()平台相关硬件初始化,如串口、定时器等

    gizwits_product.h

    该文件为 gizwits_product.c 的头文件,存放产品相关宏定义如: HARDWARE_VERSION 、SOFTWARE_VERSION

    gizwits_protocol.c

    该文件为 SDK API 接口函数定义文件

    gizwits_protocol.h

    该文件为 gizwits_protocol.c 对应头文件,相关 API 的接口声明均在此文件中

    2. ESP8266平台文件说明

    29075deffc614ea7206bb8dcfcdf4ff5.png

    主要文件说明:

    文件

    说明

    libgagent.a

    该文件为机智云设备接入协议库文件,文件位于 lib 目录下

    gagent_external.h

    该文件为 libgagent.a 对应头文件,两个文件配合使用

    gizwits_product.c

    该文件为平台相关处理文件,存放事件处理API接口函数,即 gizwitsEventProcess()

    gizwits_product.h

    该文件为 gizwits_product.c 的头文件,存放产品相关宏定义如: HARDWARE_VERSION 、SOFTWARE_VERSION

    gizwits_protocol.c

    该文件为协议实现文件,存放 SDK API 接口函数

    gizwits_protocol.h

    该文件为 gizwits_protocol.c 对应头文件,协议相关宏定义即 API 接口声明均在此文件中。

    二次开发介绍

    1. 代码二次开发需知

    自动生成的代码已经根据用户定义的产品数据点信息,并针对STM32、ESP8266等平台,生成了对应的机智云串口协议层代码,用户只需要调用相应的API接口或添加相应的逻辑处理即可。代码框架如下图所示:

    3acc4c46e7a49c7f3224877efc1daf92.png

    需要开发的部分为:

    下行处理:例如LED灯开关、电机转速控制等。

    上行处理:例如温湿度数据采集,红外传感器状态获取等。

    配置处理:配置入网及恢复出厂设置。

    2. 二次开发举例

    自动生成的代码在各平台之间使用了统一的协议封装,故二次开发所完成的修改也几乎相同,下面以STM32平台为例。

    2.1 下行处理

    首先要完成的是传感器驱动开发,然后在Gizwits目录下的gizwits_product.c文件中的gizwitsEventProcess()函数中处理相应事件即可(如下例中的ledRgbControl(),功能是控制RGB灯的颜色)。

    下面以控制RGB LED为例,代码示例如下:

    修改前:

    1

    2

    3

    4

    5

    6

    7

    8

    9if(0x01 == currentDataPoint.valueLED_ONOFF)

    {

    //user handle

    }

    else

    {

    //user handle

    }

    break;

    修改后:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11if(0x01 == currentDataPoint.valueLED_ONOFF)

    {

    //user handle

    ledRgbControl(254,0,0);

    }

    else

    {

    //user handle

    ledRgbControl(0,0,0);

    }

    break;

    2.2 上行处理

    首先要完成的是传感器驱动开发,然后在Gizwits目录下的gizwits_product.c文件中的userHandle()函数中实现传感器数据采集,用户只需并将采集到的数值赋值给对应用户区的设备状态结构体数据位即可(如下例中的:currentDataPoint.valueInfrared = irHandle();)。

    下面以红外传感器的数据获取为例(只读型数据点的操作会被云端自动生成),如下:

    修改前:

    1

    2

    3

    4

    5

    6void userHandle(void)

    {

    /*

    currentDataPoint.valueInfrared = ;//Add Sensor Data Collection

    */

    }

    修改后:

    1

    2

    3

    4vvoid userHandle(void)

    {

    currentDataPoint.valueInfrared = irHandle();

    }

    特别提醒:userHandle()被while循环调用,执行速度较快,需要针对不同的需求,用户可调整数据点数据的采集周期和接口实现位置,预防由于传感器数据采集过快引发的不必要的问题。但不建议在userHandle()中调用延时函数来降低执行频率。正确方法如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10void userHandle(void)

    {

    static uint32_t irLastTimer = 0;

    if((gizGetTimerCount()-irLastTimer ) > SAMPLING_TIME_MAX) {

    currentDataPoint.valueInfrared = irHandle();

    irLastTimer = gizGetTimerCount();

    }

    }

    2.3 配置处理

    除了数据的上行与下行处理外,还需要一些配置操作需要完成,如下:

    配置入网

    恢复出厂配置

    我们提供了一个API接口,实现上述操作,定义如下。

    1int32_t gizwitsSetMode(uint8_t mode)

    参数mode支持WIFI_RESET_MODE、WIFI_SOFTAP_MODE、WIFI_AIRLINK_MODE三种(详情见gizwits_protocol.h文件的 WIFI_MODE_TYPE_T),分别完成恢复出厂配置,进入softap配置模式,进入airlink配置模式操作。您可以根据产品的定义实现不同的配置操作,如按键触发进入配置模式。

    更多

    截止至2017年,MCU代码自动生成功能特性如下

    支持8位、16位、32位的MCU

    Cubemx无缝对接

    支持四大类MCU:51单片机、MSP430、STM32、arduino,含正点原子等

    兼容esp8266 SOC开发方式,含8M、16M、32M模组

    展开全文
  • stm32单片机串口通讯代码自动生成工具,只需要鼠标轻轻一点就可以自动生成你想要的通讯代码,欢迎使用并提出你的宝贵意见
  • 电子-STM32库函数代码自动生成器V1.2.zip,单片机/嵌入式STM32-F0/F1/F2
  • 本软件可实现7段数码管字形代码自动转换,根据不同的硬件接口自动转换0~9代码和任意代码
  • m8255a代码自动生成

    2017-09-28 13:03:59
    配置好接线,并按提示设置正确后,可以自动生成8255的驱动代码.已经附先关使用方法的动图. 本程序需要.net framework 4.0的支持.
  • STM32 库函数代码自动生成器正式版 1.库的版本为F1的(Libraries.rar里面就是对应的库)! 2.不能使用的朋友,只需要安装个Microsoft .NET Framework 2.0 Service Pack 2即可!我将下载链接贴出来,需要的朋友可自行去...
  • 电子-stm32串口通讯代码自动生成工具中断方式.rar,单片机/嵌入式STM32-F0/F1/F2
  • 已经和谐不会失效,对于stm32的开发很有帮互助,减少了很多工作量呢
  • 懒人 C51 代码 自动生成 方面初学者学习,掌握C51系列芯片的程序
  • [Simulink] 从手写代码自动生成代码

    千次阅读 2019-04-27 14:48:13
    文章目录目的利用51单片机实现LED点亮程序Simulink ert.tlc自动生成代码分析ert_main.c 目的 本笔记的学习目的是了解Simulink的自动生成代码,并通过51单片机实例学习将MCU的驱动程序与Simulink自动生成代码相...

    目的

    本笔记的学习目的是了解Simulink的自动生成的代码,并通过51单片机实例学习将MCU的驱动程序与Simulink自动生成的代码相结合

    利用51单片机实现LED点亮程序

    这部分比较简单,这里P0点亮LED,程序如下:

    /* ------------------------------
    Function : 点亮LED实例
    Author: Sprinkle_WPD
    Date : 2019-04-26
    --------------------------------*/
    #include "reg52.h"
    sbit LED = P0^0;
    /* -------Function main--------------
    Input : void
    Output: void
    ------------------------------------*/
    void main(){
    LED = 1;
    while(1){
    }
    }
    

    烧录到51单片机中之后的现象为P0^0对应的LED灯点亮。

    Simulink代码生成基础

    Simulink针对MCU生成的代码,其结构包括了:

    • main program主函数
    • model application 算法
    • rutime library 库函数
    • I/O device底层驱动
    • data logging interface数据记录接口
    • data exchange interface 数据通信接口
      针对嵌入式系统,Simulink生成代码时需要设置为Fixed-step定步长求解器
      同时,Simulink提供了针对嵌入式的tlc以及对应的cgt模板
      如果是针对MCU的代码生成,可以进行下列设置:
    • create code generation 创建代码生成报告
    • open report automatically 自动打开报告
    • code-to-model 代码高亮显示对应的模型
    • generate model web view 在同一窗口显示代码以及与之对应的模型
    • generate code only 仅生成代码,不便宜链接生成可执行文件

    Simulink ert.tlc自动生成的代码分析

    打开Simulink,建模如下:
    在这里插入图片描述
    建模后,选择ert.tlc后进行编译,其他参数设置如下:

    • Solver选择Fixed-step
    • Code Generation中勾选Generate code only
    • Code Generation > Interface > 勾选Remove error status field in real-time model data structure

    编译后生成的代码被保存在了5个文件中,分别是

    • ert_main.c -- 默认生成的主程序函数
    • model.c -- 模型算法
    • model.h -- 算法头文件
    • untitled_private.h -- 模型与子系统的局部宏和局部数据
    • untitled_types.h -- 模型数据结构和参数数据结构的预先声明
    • rtwtypes.h -- 定义数据类型、结构体和宏

    ert_main.c

    • 主程序调用main函数
      • model_initialize
      • rt_onestep(定时器/中断函数,与手写代码集成)
    • rt_onestep()函数
      • model_step()具体的算法

    其他5个文件为Simulink自动生成的,需要注意的是里面默认的数据结构与类型,如下表:

    数据类型命名 变量名
    Model RT_MODEL_model model_m
    Parameters P_model model_p
    external inputs ExtU_model model_U
    External outputs ExtY_model model_Y
    Block signals B_model model_B
    Block states DW_model model_DW

    在上面的模型生成的model.c文件中,可以看到对output1的定义:
    model.c 中 ExtY_model_T model_Y;
    model.h中

    typedef struct {
    real_T Out1; /* '<Root>/Out1' */
    } ExtY_model_T;
    extern ExtY_model_T model_Y;
    

    这种方式很明显不适用于代码的理解,因此,可以利用Simulink.Signal进行代码的优化。下图就是可以Simulink.Signal对代码进行了优化:
    在这里插入图片描述
    具体如何设置,之前的笔记中记录过。

    代码集成的两种方法

    上面生成的代码仅仅是算法部分,要想在MCU上实现,还需要对应的驱动等代码,这涉及到代码的集成。
    代码集成有两种方法:

    • 在Simulink内部集成,Simulink提供了主流MCU的TSP(Target Support Package),其实背后就是TLC,通过模块的拖入,在代码生成时调用对应的TLC生成与模块对应的C代码
    • 在Simulink外部集成,Simulink生成的代码在其他IDE环境中与手写代码做匹配

    两种方法各有特点,个人理解 [暂时只能理解到这个程度]:

    • 利用S-Function和TLC进行集成,前期开发工作量大,但开发好之后,使用较为方便,且可直接调用外部IDE进行程序烧录
    • 在外部集成,省去了编写模块的步骤,同时驱动部分的灵活性更高

    很明显,第2种方法更合理一些,但是目前工作过程中,研发工程师更关心的是算法的执行效果,为了弥补研发工程师应对较短的开发周期,同时降低对代码集成工作的负荷,可以采用第1种方法,并在此基础上配合标定工具,进行快速原型开发

    外部代码集成

    这个部分其实是源自上一篇笔记,主要是因为上一篇笔记学习的时候,是针对<基于模型的设计 MCU篇>中的实例,这个地方对main.c文件做了自定义.
    为了便于说明其过程,这里用STC89C52的开发板为例, 对外部代码集成做说明
    要进行外部代码集成, 就需要调用model.c中的函数,因此需要在手写代码中加入#include model.h
    在Simulink中做如下设置:

    • 取消勾选 generate an example main program
    • 勾选 package code and artifacts 自动打包生成代码,生成一个zip的压缩文件

    编写main.c文件

    #include "untitled.h"
    /*这里添加驱动.c和.h文件*/
    #include "reg52.h"
    #define P0 led
    void main(void){
    /*初始化模型*/
    model_initialize();
    while(1){
    /*这里定义其他需要执行的任务*/
    }
    /*model终止函数,可以在Simulink.Interface的界面中进行定义是否出现*/
    #model_terminate();
    }
    

    这里的比例很简单,因为model_step()函数中什么也没有执行, 编译后,将main.c文件同生成的代码一起复制到IDE中,编译并烧录即可.
    这里提到一个main.c文件, 这个文件怎么写比较合适?

    模板文件

    这里的模板文件配置是在Configuration中的Template中进行设置,其中file customization template就是控制用户自定义的代码生成效果用的tlc文件, 具体怎么写这个tlc可以参考waijung blockset.
    在这里插入图片描述

    内部集成 S Function and TLC

    既然我们有了自定义的main.c文件, 再加上之前学习过的TLC生成模块级的代码,我们就可以实现自己制作一套底层驱动的模块了.

    这两天出差中, 51单片机不在手边,回家后补充后续的51实例.

    参考资料:
    Mathworks
    waijung blockset
    华海科技 Rapid-ECU

    展开全文
  • 众所周知,机智云MCU代码自动生成器是一个非常非常便利的工具,能根据产品自动填写ProductKey,根据相应数据点来自动生成数据点的结构体,直接生成多种平台、多种系列MCU的工程。大大减少了开发量,它具有如下特性:...

    abdd389f5f51eb157a29111a6d85f9b2.gif

            众所周知,机智云MCU代码自动生成器是一个非常非常便利的工具,能根据产品自动填写ProductKey,根据相应数据点来自动生成数据点的结构体,直接生成多种平台、多种系列MCU的工程。大大减少了开发量,它具有如下特性:

    1、支持8位、16位、32位的MCU2、Cubemx无缝对接3、支持四大类MCU:51单片机、MSP430、STM32、arduino,含正点原子等4、兼容esp8266 SOC开发方式,含8M、16M、32M模组

            今天主要分享不同型号的MCU该选用什么习惯好的工程目录,如何修改对应的Gizwits代码结构及原理(含WiFi配网、上行处理、下行处理)等内容,为后续开发奠定基础。

    我们通过机智云生成的代码分为指定型号或其他平台,从下图可以看出,我们通过选定型号,输入创建设备时的密钥就可以生成代码工程,然后下载解压即可使用。

    从下图可以看出,我们的STM32和Arduino基本上可以直接用机智云自动生成的工程,其他平台就需要进一步移植。

    0e9d6a320c6b08733d5e1ebfba146238.png

    1、指定MCU工程目录

    将我们生成的代码解压后会看到以下结构,此工程就是我们的STM32的完整功能,可直接在这基础上修改使用,并且支持STM32CubeMX开发,只是该工程是基于HAL库,并不是标准库。(官方生成的MCU代码(hal库)移植到标准库的STM32教程)

    7307650d120d50728d977a287f28444e.png

    具体我们了解下Gizwits 文件夹,它是机智云协议层,包括串口通信协议和用户事件处理(这个文件很重要)。

    开发说明文档主要介绍了通信协议的 API 函数,以及在二次开发中,设备的配置入网、数据采集、事件和 WIFI 状态的处理。更新日志,则记录当前和过往工程版本的更新功能信息。

    bfb950a69d6cbfb8b693acbdf52b02c0.png

    2、其他平台工程目录

    结构和上面都差不多,但是这里我们就不能当成一个完整的工程使用,首先需要进行协议的移植。我们在移植时只需要关注Gizwits和Utils协议文件夹即可,后面会介绍具体是怎么移植的。1234d7a77b9ff742240da47ccb351602.png

    3、Gizwits 代码结构及原理980bbfbe5df0864833aeff0de5ad3c53.png

    机智云 MCU 工程代码的大概运行流程如下:

    ①初始化:先对用到外设和协议进行初始化(系统时钟、用户外设(按键、其他)接口、gizwits 串口协议系统(WIF 接口、1MS 时基定时器、数据缓冲区))(注意:gizwits 串口协议需要运行在毫秒的时基)。②WIFI配网:WIFI 设备通过按键配置入网,连接到云端服务器后,WIFI设备会收到来自云端或 APP 端给发过来的数据点、状态等信息。③MCU通过WIFI接收云端数据并存储到缓冲区:接收云端数据完成后,通过协议帧的格式发送到MCU端这边,MCU 端将收到的数据存到缓冲区中④MCU从缓冲区解析数据并执行逻辑:MCU每隔一段时间对缓冲区进行抓包,抓包正确后进行深度的解析,解析后推送到我们的数据事件处理,也就是动作执行,根据数据点相应的事件去实行自己的逻辑。⑤获取数据通过WIFI发送到云端:MCU端将采样到传感器数据按协议栈帧格式打包传送给 WIFI 设备,而 WIFI 设备则将数据上传给云端服务器

    3.1、WIFI配网

    设备需要配置才能进行联网,并与云端进行通信,而联网可通过两种接入模式,分别为AirLink 模式和 SoftAP 模式:

    1)AirLink 模式:设备当处于该模式下,会不断接收特定编码的 WIFI 广播包,手机连接可用的 WIFI 网络后,通过指定的 App(如 Demo App)发送编码后的 WIFI 网络的 SSID 和密码广播,设备接收到之后自动尝试连接此 WIFI 网络,连接成功即配置完成。

    AirLink模式配网步骤

    ①通过按键使ESP8266进入AirLink模式②手机连上路由器,注意手机要是在wifi模式下③打开APP进行一键配置,然后填写你手机所连的wifi账号密码,选择乐鑫,然后确认设备状态操作,等待一会就能配网成功了

    2)SoftAP 模式:设备在 AP 模式下,相当于热点,手机可以直接与设备连接,并将可用的WIFI 网络 SSID 和密码发送给设备,设备接收到配置信息后自动尝试连接路由器,连接成功则自动切换到正常使用的模式。以上就是对两种模式的介绍,进入两种模式都是调用 gizwitsSetMode()配置接口函数

    SoftAP模式下配网步骤

    ①ESP8266进入SoftAP模式②手机连上ESP8266建立的AP,就是wifi,账号是XPG-GAgent-XXXX密码是123456789③打开APP进行一键配置,然后填写路由器的账号密码,然后进行配网

    SoftAP模式就是指先连上ESP8266建立的AP,然后在通过输入路由器的名称和密码让ESP8266连上路由器,就配网成功了

    设置ESP8266的配网模式在gizwits_protocol.c中的gizwitsSetMode()函数中,开发者可以不用关心怎么实现的,由官网提供,可参考下图:

    ea6616fe28ada3134b31e5d38dc5a107.png

    3.2、下行处理(动作执行)

    下行处理:处理云端/APP 发送过来的控制事件

    9987963598d728c0f0177bf224f28850.png

    除了用户的事件,还有关于 WIFI 模块连接状态的事件、NTP 网络时间获取事件,就在逻辑时间处理下面:

    3.3、上行处理(数据采集)

    上行处理:上报设备状态

    795feb1331117805d35ed9a1ecafc759.png

    在用户创建数据点同时,代码上也会 MCU SDK 自生成一个对应数据点的用户设备状态结构体,它可保存设备的当前状态值:

    7fb2fbfa3949cbfa0c13dc6e1fbfff90.png620da0780da992011bd23e51303ca9dd.png

    用户只需将读到的数据赋值到用户区当前设备状态结构体即可,赋值完的数据是通过gizwitsHandle 上报到云端,开发者不需要关注变化上报和定时上报

    b6c62e4c0f709600cacde8e447eb6803.png

    相关推荐:

    1. 入门教程1:如何在机智云上创建自己的第一个设备

    2. 官方生成的MCU代码(hal库)移植到标准库的STM32教程

    3. 智云轻网关方案,让智能设备套件开发更便捷、成本更低

    4. 应用技巧:ESP8266 SOC模式的机智云OTA流程

    5. 基于51单片机和机智云的WIFI智能插座(2019版)

    6. 硬件难学?首先搞懂单片机、ARM、MUC、DSP、FPGA、嵌入式错综复杂的关系

    7a95cc7ccf6d6a37a8bce55a8ba4f887.png

    扫一扫,开启您的IoT开发之旅

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,384
精华内容 3,353
关键字:

单片机代码自动生成