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
    +关注

    关注

    2266

    文章

    10873

    浏览量

    354872
收藏 人收藏

    评论

    相关推荐

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

    STM32机智连接实现(第二篇)—NTP实时时间获取与设备配对在上一篇文章中,我们介绍了如何将STM32机智
    的头像 发表于 11-20 01:02 131次阅读
    <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连接机智代码移植,NTP实时时间获取(一)

    目录一、机智介绍二、固件下载三、项目例程下载四、代码移植五、代码编写准备(已配置完毕,正式开始编写代码
    的头像 发表于 11-19 01:01 136次阅读
    <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开发板能用stlink吗

    开发板概述 正点原子提供的STM32开发板涵盖了从基础到高级的多种型号,包括但不限于STM32F103、STM32F407
    的头像 发表于 11-13 09:21 315次阅读

    基于机智移植STM32L496G代码移植

    前言最近我拿到了STM32L496AGMCU,发现其扩展版可以连接ESP-01S。我想尝试将开发板连接到我们的机智上,并根据机智提供的文
    的头像 发表于 09-20 08:05 317次阅读
    基于<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最小系统板与ESP01S接入机智教程

    本次采用STM32F103C8T6单片机、ESP-01S模块、红外避障模块、蜂鸣器模块,OLED(0.96iic)、继电器模块、超声波模块,接入机智平台,分别演示
    的头像 发表于 09-04 08:02 449次阅读
    <b class='flag-5'>STM32</b>最小系统板与ESP01S<b class='flag-5'>接入</b><b class='flag-5'>机智</b><b class='flag-5'>云</b>教程

    个人机智开发实践:经验总结与技术分享

    无线模块的GAgent固件。例如,我使用了正点原子的esp8266模块,选择了对应的GAgentforESP8266固件。5.MCU方案代码移植6.将
    的头像 发表于 07-05 08:10 304次阅读
    个人<b class='flag-5'>机智</b><b class='flag-5'>云</b>开发实践:经验总结与技术分享

    使用STM32F407正点原子的开发板作为客户端,电脑作为服务器端时程序总是死在接收函数上是为什么?

    生成的工程可以ping通,使用STM32F407正点原子的开发板作为客户端,电脑作为服务器端时程序总是死在接收函数上,把接收函数屏蔽后程序正常也能于服务器连接上。请大神指教,是否是哪里参数配置有问题导致这样现象?
    发表于 04-29 06:54

    STM32F407的程序移植STM32F103的芯片上面,需要修改哪些内容?

    STM32F407的程序移植STM32F103的芯片上面,需要修改哪些内容?
    发表于 04-10 07:38

    如何在STM32F407移植lwip?

    如题,使用rt-thread操作系统,在STM32F407上如何移植lwip,下载了最新的rt-thread代码,不知如何入手。 谁能帮帮我吗,或者有没有移植手册发我看看。
    发表于 03-05 08:32

    stm32f407移植了sqlite3并且存储了传感器数据,怎么把文件导出来?

    大佬们,我在stm32f407移植了sqlite3,并且存储了传感器数据,现在需要把文件导出来,这个怎么操作呀,望各位大佬指点迷津。。。
    发表于 03-01 06:02

    STM32F407+PCM5102APWR+SD卡内播放wav或mp3音乐如何实现?

    PCM5102APWR与SD卡连接起来。 然后,我们需要编写适当的软件代码来初始化和配置STM32F407与PCM5102APWR和SD卡之间的通信。以下是一个示例代码,该代
    的头像 发表于 01-16 17:11 2539次阅读

    stm32f407 double类型

    STM32F407是意法半导体(STMicroelectronics)推出的一款ARM Cortex-M4内核的微控制器。它是针对智能电动车领域的实时操作、数字信号处理和高性能应用而设计的。在这
    的头像 发表于 01-07 16:45 2928次阅读

    stm32f407 LAN8720A速率调整

    STM32F407是一款基于ARM Cortex-M4内核的高性能微控制器,而LAN8720A是一款高速以太网PHY芯片。它们的组合可以实现在STM32F407上使用以太网功能。 调整
    的头像 发表于 01-05 13:54 3508次阅读

    stm32f407浮点运算速度

    STM32F407 是 STMicroelectronics 公司推出的一款基于 ARM Cortex-M4 内核的微控制器。它具有较强的处理能力和丰富的外设资源,在嵌入式系统中得到广泛应用。该芯片
    的头像 发表于 01-04 10:58 3261次阅读

    正点原子stm32f1 nano开发板简介

    温馨提示 :正点原子stm32f103-nano开发板有旧版本( 主控芯片STM32F103RBT6 )和新版本( 主控芯片STM32F10
    的头像 发表于 11-30 15:45 2211次阅读
    <b class='flag-5'>正点</b><b class='flag-5'>原子</b><b class='flag-5'>stm32f</b>1 nano开发板简介