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

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

3天内不再提示

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

机智云 2022-06-20 09:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在2017年机智云和正点原子联袂发布正点原子接入机智云教程,提供了一整套基于STM32开发板的接入教程和实例源码,从平台配置到程序配置,为开发人员提供一种便捷的接入云平台方案。

所有正点原子STM32开发板(除mini外)均具有ATK-Module接口,只需要把ATK-ESP8266模块直接连接到该接口即可。mini开发板需要通过杜邦线链接。

换句话说,所有正点原子的开发板都可以轻松连云了,几小时搞定远程控制。

教程下载地址:http://pan.baidu.com/s/1geUdgJ5

a3999644-eff0-11ec-a2f4-dac502259ad0.png

a3ac03d8-eff0-11ec-a2f4-dac502259ad0.png

但是由于时间过长,手册内容中的Gizwits文件目录和目前的机智云自动生成的代码目录有一定的差异,因此移植过程有了一些改变。

为了方便大家针对新版机智云的代码进行移植,也为了给自己的移植过程做一个记录,特此写下正点原子探索者STM32F497的移植过程。


a3baab4a-eff0-11ec-a2f4-dac502259ad0.gif移植步骤

1、创建项目,定于数据点,生成MCU代码包

先登陆机智云自助开发平台dev.gizwits.com

创建智能项目

定义数据点

生成MCU代码(选择其他平台)并下载

推荐使用最新的esp8266机智云GAgent固件

Gagent固件下载地址

download.gizwits.com/zh-cn/p/92/94


选择生成其他平台的代码是标准库

选择F407平台则生成的是HAL库。

a3cabeea-eff0-11ec-a2f4-dac502259ad0.png


2.进行移植
打开MCU代码包正点原子的移植代码

a3f4942c-eff0-11ec-a2f4-dac502259ad0.png

可以看到如下文件路径:

a402c146-eff0-11ec-a2f4-dac502259ad0.png

将我们第一步骤下载的“MCU代码包”进行解压缩,随后将Gizwits文件夹和Utils文件夹复制到正点原子的移植代码目录中,提示覆盖点击确定即可。


a4192e72-eff0-11ec-a2f4-dac502259ad0.png


打开工程,将Utils文件夹添加到头文件路径中
a4234a2e-eff0-11ec-a2f4-dac502259ad0.png


在gizwits_product.c中加入led.h和usart3.h

#include#include#include "gizwits_product.h"//下面两个头文件是我们后来加入的#include "led.h"#include "usart3.h"

修改dataPoint_t currentDataPoint为extern dataPoint_t currentDataPoint

/** Current datapoint *///dataPoint_t currentDataPoint;extern dataPoint_t currentDataPoint;

找到以下代码,并加入

if(0x01 == currentDataPoint.valueLEDonoff){//user handle//下面一行是我们后加入的 LED1=0;//LED1亮}else{//user handle//下面一行是我们后加入的 LED1=1;//LED1灭 }

将main.c中的void userHandle(void)

//数据采集void userHandle(void){//判断当前LED1开关量if(LED1==0)currentDataPoint.valueLEDonoff = 1;else currentDataPoint.valueLEDonoff = 0;}

剪切到gizwits_product.c中的对应位置

//下面的void userHandle(void)是我们从main.c中剪切过来的//数据采集void userHandle(void){//判断当前LED1开关量if(LED1==0)currentDataPoint.valueLEDonoff = 1;else currentDataPoint.valueLEDonoff = 0;}

修改gizwits_product.c中的int32_t uartWrite(uint8_t *buf, uint32_t len)

int32_t uartWrite(uint8_t *buf, uint32_t len){uint32_t i = 0;if(NULL == buf){return -1;}#ifdef PROTOCOL_DEBUGGIZWITS_LOG("MCU2WiFi[%4d:%4d]: ", gizGetTimerCount(), len);for(i=0; i"" div="" style="overflow-wrap: break-word; margin: 0px; padding: 0px; box-sizing: border-box;">{GIZWITS_LOG("%02x ", buf);}GIZWITS_LOG("\n");#endiffor(i=0; i"" i="" style="overflow-wrap: break-word; margin: 0px; padding: 0px; box-sizing: border-box;">{//USART_SendData(UART, buf);//STM32 test demo//实现串口发送函数,将buf发送到模组 USART_SendData(USART3,buf);while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET); //循环发送,直到发送完毕if(i >=2 && buf == 0xFF){//实现串口发送函数,将0x55发送到模组 USART_SendData(USART3,0x55);while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET); //循环发送,直到发送完毕}}return len;}

在gizwits_product.c中的void mcuRestart(void);处加入如下代码

void mcuRestart(void){__set_FAULTMASK(1);//关闭所有中断NVIC_SystemReset();//复位 }

在gizwits_product.h中加入void gizTimerMs(void);

void userInit(void);void userHandle(void);void mcuRestart(void);//下面的一行是我们后面加入的void gizTimerMs(void);

至此,移植完成

3、编译、调试
编译下载到开发板即可。
a431ec5a-eff0-11ec-a2f4-dac502259ad0.png

按下KEY1,用机智云的手机App进行连接调试。
a43e7e98-eff0-11ec-a2f4-dac502259ad0.png

a4528afa-eff0-11ec-a2f4-dac502259ad0.png

4、演示效果

进入即可控制LED的亮灭。

a461553a-eff0-11ec-a2f4-dac502259ad0.png

原文出自:https://mbb.eet-china.com/blog/3934591-420668.html

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

    关注

    2313

    文章

    11206

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    机智物联网平台设备接入完整实操教程

    机智是物联网设备云端服务平台,提供设备管理、数据处理等全套解决方案。本教程详解硬件接入平台全流程,结合FreeRTOS实现多任务处理与高效通信,帮助开发者快速掌握设备上对接技巧,提
    的头像 发表于 05-19 18:04 169次阅读
    <b class='flag-5'>机智</b><b class='flag-5'>云</b>物联网平台设备<b class='flag-5'>接入</b>完整实操教程

    基于STM32机智的智能家居系统(完整项目)

    显示、ESP8266-01S接入云端,实现手机APP远程监测、模式切换、手动/自动控制与报警提醒。本文设计基于STM32F103C8T6与机智的智能家居控制系统
    的头像 发表于 05-15 18:04 193次阅读
    基于<b class='flag-5'>STM32</b>与<b class='flag-5'>机智</b><b class='flag-5'>云</b>的智能家居系统(完整项目)

    STM32快速上实战指南:手把手带你入门机智

    本项目基于STM32F103C8T6最小系统板,采用HAL库开发方式,结合ESP01sWi-Fi模块,实现将各类传感器数据快速上传至机智平台。通过移植
    的头像 发表于 12-10 18:04 1551次阅读
    <b class='flag-5'>STM32</b>快速上<b class='flag-5'>云</b>实战指南:手把手带你入门<b class='flag-5'>机智</b><b class='flag-5'>云</b>

    STM32F407的晶振选型分析

    STM32F407的最佳晶振选项
    的头像 发表于 11-07 12:03 2160次阅读

    正点原子F407开发板BSP RTstudio配置LVGL demo界面不能触摸怎么解决?

    正点原子 ATK-F407 开发板BSP,使用RT studio配置LVGL,自带demo界面下,屏幕不能触摸 参考了https://club.rt-thread.org/ask/question
    发表于 10-14 06:31

    【今晚7点半】正点原子 x STM32:智能加速边缘AI应用开发!今晚正点原子B站直播间等你

    【联合直播】正点原子 x STM32:智能加速边缘AI应用开发! 一、直播介绍 随着人工智能技术在边缘计算领域的快速发展,STM32系列芯片凭借其卓越的性能与丰富的生态,成为众多智
    发表于 09-25 14:14

    rtt5.0.0下lvgl在正点原子stm32f407探索者开发板V3上mdk编译报错怎么解决?

    开发板为正点原子stm32f407探索者V3,在rtt5.0.0版本下加入lvgl及相应的lcd, touch驱动,其它什么功能也没加,在mdk中编译,报错: Program Siz
    发表于 09-22 06:17

    用gd32f470移植成功无法进入main函数,怎么解决?

    如下所示,我之前用gd32f470移植成功无法进入main函数,之后用官方例程用stm32f407去跑也还是这样
    发表于 09-10 06:24

    STM32项目分享:智能厨房安全系统(机智)

    01—项目简介1.功能详解STM32智能厨房安全系统(机智)功能如下:STM32F103C8T6单片机作为主控芯片检测功能:检测环
    的头像 发表于 09-10 00:01 1402次阅读
    <b class='flag-5'>STM32</b>项目分享:智能厨房安全系统(<b class='flag-5'>机智</b><b class='flag-5'>云</b>)

    STM32项目分享:智能语音台灯(机智)

    01—项目简介1.功能详解STM32智能语音台灯(机智)功能如下:STM32F103C8T6单片机作为主控单元按键切换模式,支持自
    的头像 发表于 07-24 18:03 1964次阅读
    <b class='flag-5'>STM32</b>项目分享:智能语音台灯(<b class='flag-5'>机智</b><b class='flag-5'>云</b>)

    STM32+esp8266连接机智,上传温湿度数据并控制继电器开关(平台配置、代码生成、代码移植

    本教程将详细介绍如何将STM32微控制器与ESP8266Wi-Fi模块连接到机智平台,实现温湿度数据的上传与继电器的远程控制。通过此过程,您将学会如何配置机智
    的头像 发表于 07-15 18:54 1639次阅读
    <b class='flag-5'>STM32</b>+esp8266连接<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>)

    机智配网教程第三期:单片机代码移植实战

    stm32f103c8t6,WiFi模块:ESP-01s,下载器:ST-LINK2.软件:keil5的工程文件模板,mcu代码代码资源:未移植
    的头像 发表于 07-01 17:32 2345次阅读
    <b class='flag-5'>机智</b><b class='flag-5'>云</b>配网教程第三期:单片机<b class='flag-5'>代码</b><b class='flag-5'>移植</b>实战

    正点原子STM32MP257开发板试用】系统更新

    固件包 ,下载所需固件 详见:STM32MP257开发板 — 正点原子资料下载中心 1.0.0 文档 . 正点原子在线文档 . 固件上传
    发表于 06-17 18:35

    基于STM32 HAL库与标准库的esp8266接入机智方案(二)

    在《基于STM32HAL库与标准库的esp8266接入机智方案(一)》中,我们详细介绍了硬件连接和机智
    的头像 发表于 05-28 18:02 1771次阅读
    基于<b class='flag-5'>STM32</b> HAL库与标准库的esp8266<b class='flag-5'>接入</b><b class='flag-5'>机智</b><b class='flag-5'>云</b>方案(二)

    基于STM32 HAL库与标准库的ESP8266接入机智方案(一)

    最近在项目中需要进行物联网平台对接,之前我找到了一些资料,发现机智是一个不错的平台。机智的资料丰富,且操作简便,可以根据MCU自动生成
    的头像 发表于 05-28 18:02 1399次阅读
    基于<b class='flag-5'>STM32</b> HAL库与标准库的ESP8266<b class='flag-5'>接入</b><b class='flag-5'>机智</b><b class='flag-5'>云</b>方案(一)