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

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

3天内不再提示

正点原子STM32F407开发板的移植过程

9GxC_IoTMaker 来源:机智云开发者 作者:机智云开发者 2022-06-20 11:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

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

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

df14498c-ef6c-11ec-ba43-dac502259ad0.png

df26bce8-ef6c-11ec-ba43-dac502259ad0.png

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

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


移植步骤

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

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

创建智能项目

定义数据点

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

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

Gagent固件下载地址

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

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

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

df41ad5a-ef6c-11ec-ba43-dac502259ad0.png


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

df5f8a82-ef6c-11ec-ba43-dac502259ad0.png

可以看到如下文件路径:

df704e76-ef6c-11ec-ba43-dac502259ad0.png

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


df7ee4b8-ef6c-11ec-ba43-dac502259ad0.png


打开工程,将Utils文件夹添加到头文件路径中
df91ccf4-ef6c-11ec-ba43-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("
    ");#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、编译、调试
编译下载到开发板即可。
dfa2e728-ef6c-11ec-ba43-dac502259ad0.png

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

dfea845c-ef6c-11ec-ba43-dac502259ad0.png

4、演示效果

进入即可控制LED的亮灭。

e003ad1a-ef6c-11ec-ba43-dac502259ad0.png

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

文章出处:【微信公众号:机智云开发者】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红



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

    关注

    1

    文章

    407

    浏览量

    29213
  • 开发板
    +关注

    关注

    25

    文章

    6124

    浏览量

    113358
  • STM32F407
    +关注

    关注

    15

    文章

    189

    浏览量

    31408
  • 机智云
    +关注

    关注

    3

    文章

    629

    浏览量

    27633
  • 正点原子
    +关注

    关注

    9

    文章

    31

    浏览量

    10846

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

文章出处:【微信号:IoTMaker,微信公众号:机智云开发者】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32F407的晶振选型分析

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

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

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

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

    意法半导体联合举办,致力于为广大开发者提供前沿的AI技术支持与应用指导。参与直播有机会抽取正点原子STM32N6以及STM32MPU
    发表于 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

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

    正点原子STM32MP257开发板试用】系统更新 本文介绍了正点原子
    发表于 06-17 18:35

    正点原子STM32MP257开发板试用】介绍、上电测试、系统连接

    正点原子STM32MP257开发板试用】介绍、上电测试、系统连接 本文介绍了正点原子
    发表于 06-13 17:28

    正点原子STM32MP257开发板试用】智能门锁

    前言 感谢正点原子和电子发烧友论坛提供的这次机会让我有机会体验这款正点原子STM32MP257开发板
    发表于 06-08 16:03

    正点原子STM32MP257开发板试用】+ STM32MP257开发板开箱评测

    很高兴收到了正点原子和电子发烧友给到了试用名额,大清早就去拿到了快递,正点原子STM32MP257开发板
    发表于 06-08 09:01

    【新品体验】正点原子STM32MP257开发板免费试用

    试用产品概述ATK-DLMP257B开发板正点原子基于STM32MP257DAK3处理器研发的一款高性能嵌入式开发平台,适用于嵌入式系统
    的头像 发表于 04-22 08:05 1091次阅读
    【新品体验】<b class='flag-5'>正点</b><b class='flag-5'>原子</b><b class='flag-5'>STM32</b>MP257<b class='flag-5'>开发板</b>免费试用

    【新品体验】正点原子STM32MP257开发板免费试用

    ATK-DLMP257B 开发板,是正点原子基于ST意法半导体的STM32MP257DAK3处理器设计而成的一款高性能、多功能开发板,采用底
    发表于 04-21 16:22

    如何在APM32F407开发板上应用uC/OS-III实时操作系统

    最近我开始学习 uC/OS-III 实时操作系统,并着手将其移植到APM32F407 开发板上。在这个过程中,我遇到了许多有趣的挑战和发现,也感受到了操作系统带来的强大功能和灵活性。
    的头像 发表于 04-01 09:39 1256次阅读
    如何在APM32<b class='flag-5'>F407</b><b class='flag-5'>开发板</b>上应用uC/OS-III实时操作系统

    【AI开发板正点原子K230D BOX开发板来了!一款性能强悍且小巧便携的AI开发板

    【AI开发板正点原子K230D BOX开发板来了!一款性能强悍且小巧便携的AI开发板正点
    发表于 02-18 16:56

    正点原子STM32H7R3开发套件试用体验】4G联网工业设备控制网关

    这次有幸参加 正点原子STM32H7R3开发套件 的评测,计划使用 正点原子
    发表于 12-18 14:14

    正点原子STM32H7R3开发套件试用体验】开发套件开箱报告

    套件 打开盒子,把开发套件,再和之前的STM32F103精英版做个对比: 上下对比,可以看到,两套开发套件,是一脉相承的,都是开发板,电源,红外遥控器。在盒子的底部,还有连接线。 可以
    发表于 12-12 00:54

    STM32F407 MCU使用SD NAND 不断电初始化失效解决方案

    STM32F407微控制器单元(MCU)与SD NAND的结合提供了强大的存储解决方案。然而,不断电初始化失效问题可能会导致系统稳定性和数据完整性受损。我们将STM32F407与SD NAND集成时可能遇到的初始化问题,并提供专业的解决方案。
    的头像 发表于 12-11 10:51 1481次阅读
    <b class='flag-5'>STM32F407</b> MCU使用SD NAND 不断电初始化失效解决方案