0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32与机智云连接实现步骤与技巧(下篇):机智云代码移植与优化

机智云 2025-05-23 18:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群



在《STM32机智云连接实现步骤与技巧(上篇)》中,我们介绍了硬件连接和通信协议配置。本篇将重点讲解如何将机智云相关代码移植到STM32,完成数据上传和设备控制。我们将介绍如何在STM32中配置机智云SDK,集成API,实现数据传输和设备状态同步,并分享移植过程中的常见问题及解决方法,帮助开发者顺利实现云端连接。



机智云相关代码开始移植


相关移植步骤


1、实现与模组通信串口驱动


2、实现串口打印函数printf();


3、实现1ms定时器,gizTimerMs()维护系统时间 (提供时基)


4、实现MCU复位函数,模组可请求MCU复位


5、实现配置入网功能,调用gizwitsSetMode()函数实现模组配网功能


6、实现userHandle()数据的采集(上行逻辑)


7、实现 gizwitsEventProcess()控制命令的具体执行(下行逻辑)


1、WIFI串口接收数据写入缓冲区


串口包含这个机智云的头文件





35ef1efc-37be-11f0-8605-92fbcf53809c.png

2、实现uartWrite()串口发送数据


在该文件中找到uartWrite()这个函数,并在给文件上方添加所用串口的.h文件





36127e24-37be-11f0-8605-92fbcf53809c.png

该函数修改为

(代码部分请点击文末查看原文以获取详细内容)

实现毫秒定时


对于使用的定时器4,中断里添加相应代码

(代码部分请点击文末查看原文以获取详细内容)


编译会出现警告,找不到该函数,gizTimerMs();函数没有定义,在gizwits_product.h文件中进行定义。


实现芯片复位函数


修改该函数在gizwits_product.h文件中





3629f400-37be-11f0-8605-92fbcf53809c.png

改为下边的代码

(代码部分点击查看原文进行查阅)

实现配置入网35e663d4-37be-11f0-8605-92fbcf53809c.png


模组支持 SoftAp 和 AirLink 两种方式配置入网, 相应接口为 gizwitsSetMode(), 三种模式如下:

WIFI_RESET_MODE 恢复默认出厂设置

WIFI_SOFTAP_MODE 热点配网

WIFI_AIRLINK_MODE 手机广播配网

在此之前主函数中添加头文件





364fd44a-37be-11f0-8605-92fbcf53809c.png35e663d4-37be-11f0-8605-92fbcf53809c.png

以及初始化





368a43c8-37be-11f0-8605-92fbcf53809c.png35e663d4-37be-11f0-8605-92fbcf53809c.png


36a44d7c-37be-11f0-8605-92fbcf53809c.png35e663d4-37be-11f0-8605-92fbcf53809c.png

添加机智云初始化代码,本次选择了airlink配网模式

(代码部分点击查看原文进行查阅)




协议处理35e663d4-37be-11f0-8605-92fbcf53809c.png


根据采集到的数据,然后调用函数 gizwitsHandle()、userHandle()上报,函数位置在gizwits_protocol.c文件中,该函数主要完成协议数据的处理及数据主动上报的相关操作,到这一步,配网就结束了,接下来开始配置自己需要传输的数据。

(代码部分请点击文末查看原文以获取详细内容)



数据上下发配置35e663d4-37be-11f0-8605-92fbcf53809c.png


上发数据用到的函数为userHandle(),这个函数是在gizwits_protocol.c中


如图,本设计一开始将参数都初始化为0





36c9f748-37be-11f0-8605-92fbcf53809c.png35e663d4-37be-11f0-8605-92fbcf53809c.png

采集数据的函数





36e80c9c-37be-11f0-8605-92fbcf53809c.png35e663d4-37be-11f0-8605-92fbcf53809c.png

该函数中内容作为机智云app下发数据





37026f1a-37be-11f0-8605-92fbcf53809c.png35e663d4-37be-11f0-8605-92fbcf53809c.png
实验现象35e663d4-37be-11f0-8605-92fbcf53809c.png





372f6394-37be-11f0-8605-92fbcf53809c.jpg35e663d4-37be-11f0-8605-92fbcf53809c.png


3747c308-37be-11f0-8605-92fbcf53809c.jpg35e663d4-37be-11f0-8605-92fbcf53809c.png



WIFI连接出现的问题35e663d4-37be-11f0-8605-92fbcf53809c.png


出现timeout超时,可能原因是主函数中给了延时函数,可以尝试屏蔽掉。如果出现连接数据传输不稳定,WIFI连接容易掉,可以尝试一下。


注释掉箭头指向的这三行





376a92ca-37be-11f0-8605-92fbcf53809c.jpg35e663d4-37be-11f0-8605-92fbcf53809c.png

并且把这个语句能搜索到的全部注释掉,可以ctrl+f 搜索都在这两个文件中。


这个主要是串口1打印内容(gizwits_product.c,gizwits_protocol.c)





378a0c2c-37be-11f0-8605-92fbcf53809c.png35e663d4-37be-11f0-8605-92fbcf53809c.png


379b7e76-37be-11f0-8605-92fbcf53809c.png35e663d4-37be-11f0-8605-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2305

    文章

    11121

    浏览量

    371170
  • 机智云
    +关注

    关注

    3

    文章

    629

    浏览量

    27633
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    机智自动生成工程移植STM32CubeMX

    的接口,即可将机智自助生成的STM32方案工程里面的设备协议移植过来,真正实现全程图形化配置,傻瓜式开发,这样既可十分方便的将其它型号
    发表于 02-07 16:59

    STM32CubeMX移植机智自动生成代码详解

    的工程中只有STM32L496ZGT相关的驱动代码,若要使用机智的联网能力就需要移植相关的协议源码(即前文介绍的已自动生成的
    发表于 12-28 13:50

    STM32+机智WebSocket实现物联网游戏

    /zh-cn/p/92/94)2、实现步骤  2.1编写STM32硬件程序    在机智的协议头文件修改自己的设备信息(在
    发表于 07-16 14:30

    基于STM32机智IoT服务平台的智能花盆

    本案例为机智硬件开发平台入门级基础应用开发实例,开发者通过使用机智自助开发平台(机智IoT
    发表于 05-14 15:28

    【开源案例】双STM32机智,一起打造“优美”的数字仪表

    G0 和STM32F7的硬件平台和机智AIoT平台,搭载最新GUI的TouchGFX技术,开发数字仪表, 实现底层的测量感知,炫酷的显示,远程控制,云端
    发表于 03-24 12:42

    正点原子探索版STM32F407,接入机智代码移植

    为了给自己的移植过程做一个记录,特此写下正点原子探索者STM32F497的移植过程。移植步骤机智
    发表于 06-17 12:12

    移植机智代码STM32F103

    二期移植机智代码STM32F103系列在哔站录了两期简单的视频 ,欢迎大家指正不足,我也是刚刚开始做,还有很多不足,如果视频中写的有什么
    发表于 08-03 07:46

    stm32连接机智创建

    stm32连接机智创建机智产品修改MCU代码文件给ESP8266烧写
    发表于 08-09 09:30

    基于STM32与esp8266机智app联网总结

    背景是有一个成熟的STM32机智项目代码,记录一下成功应用的过程。第一步:用ttl转u***串口给esp8266烧录机智
    发表于 04-25 13:40

    机智官方生成的MCU代码(hal库)移植STM32标准库教程

    STM32固件库,以下是移植步骤:生成"通用平台代码"下载并解压将Gizwits和User复制进自己创建好的STM32工程内工程内加入文件和
    发表于 11-06 09:51 15次下载
    <b class='flag-5'>机智</b><b class='flag-5'>云</b>官方生成的MCU<b class='flag-5'>代码</b>(hal库)<b class='flag-5'>移植</b>为<b class='flag-5'>STM32</b>标准库教程

    基于stm32连接机智教程

    stm32连接机智创建机智产品修改MCU代码文件给ESP8266烧写
    发表于 12-06 19:06 10次下载
    基于<b class='flag-5'>stm32</b>的<b class='flag-5'>连接机智</b><b class='flag-5'>云</b>教程

    教程:ESP8266接入机智,成功实现代码移植

    本文主要以图文方式介绍了ESP8266接入机智,生成MCU代码,并成功移植代码实现APP控制
    的头像 发表于 01-12 10:16 7780次阅读
    教程:ESP8266接入<b class='flag-5'>机智</b><b class='flag-5'>云</b>,成功<b class='flag-5'>实现代码</b><b class='flag-5'>移植</b>

    基于机智移植STM32L496G代码移植

    前言最近我拿到了STM32L496AGMCU,发现其扩展版可以连接ESP-01S。我想尝试将开发板连接到我们的机智上,并根据
    的头像 发表于 09-20 08:05 1584次阅读
    基于<b class='flag-5'>机智</b><b class='flag-5'>云</b><b class='flag-5'>移植</b><b class='flag-5'>STM32</b>L496G<b class='flag-5'>代码</b><b class='flag-5'>移植</b>

    STM32连接机智代码移植,NTP实时时间获取(一)

    目录一、机智介绍二、固件下载三、项目例程下载四、代码移植五、代码编写准备(已配置完毕,正式开始编写代码
    的头像 发表于 11-19 01:01 1548次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>连接机智</b><b class='flag-5'>云</b>,<b class='flag-5'>代码</b><b class='flag-5'>移植</b>,NTP实时时间获取(一)

    STM32机智连接实现步骤与技巧(上篇)

    通过STM32机智连接,开发者可以实现设备的远程控制和数据管理,提升物联网应用的智能化水平。本文将介绍
    的头像 发表于 05-23 18:10 854次阅读
    <b class='flag-5'>STM32</b>与<b class='flag-5'>机智</b><b class='flag-5'>云</b><b class='flag-5'>连接</b><b class='flag-5'>实现</b><b class='flag-5'>步骤</b>与技巧(上篇)