在2017年机智云和正点原子联袂发布正点原子接入机智云教程,提供了一整套基于STM32开发板的接入教程和实例源码,从平台配置到程序配置,为开发人员提供一种便捷的接入云平台方案。
所有正点原子STM32开发板(除mini外)均具有ATK-Module接口,只需要把ATK-ESP8266模块直接连接到该接口即可。mini开发板需要通过杜邦线链接。
换句话说,所有正点原子的开发板都可以轻松连云了,几小时搞定远程控制。
教程下载地址:http://pan.baidu.com/s/1geUdgJ5
但是由于时间过长,手册内容中的Gizwits文件目录和目前的机智云自动生成的代码目录有一定的差异,因此移植过程有了一些改变。
为了方便大家针对新版机智云的代码进行移植,也为了给自己的移植过程做一个记录,特此写下正点原子探索者STM32F407的移植过程。
移植步骤
1、创建项目,定于数据点,生成MCU代码包
先登陆机智云自助开发平台dev.gizwits.com
创建智能项目
定义数据点
生成MCU代码(选择其他平台)并下载
Gagent固件下载地址
download.gizwits.com/zh-cn/p/92/94
选择生成其他平台的代码是标准库
选择F407平台则生成的是HAL库。
2.进行移植
打开MCU代码包正点原子的移植代码
![df5f8a82-ef6c-11ec-ba43-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/81/wKgaomTnA7eAci76AAC6NKxuO94153.png)
可以看到如下文件路径:
![df704e76-ef6c-11ec-ba43-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/81/wKgaomTnA7iASX_zAAFpOc-4VHk876.png)
将我们第一步骤下载的“MCU代码包”进行解压缩,随后将Gizwits文件夹和Utils文件夹复制到正点原子的移植代码目录中,提示覆盖点击确定即可。
![df7ee4b8-ef6c-11ec-ba43-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/81/wKgaomTnA7iAIu1xAAAs0cvdXPY362.png)
打开工程,将Utils文件夹添加到头文件路径中
![df91ccf4-ef6c-11ec-ba43-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/81/wKgaomTnA7iACAi8AACQVl3tod4273.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_DEBUG
GIZWITS_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(" ");
#endif
for(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](https://file1.elecfans.com//web2/M00/95/81/wKgaomTnA7iAd-vUAAB_0aP16Oo529.png)
按下KEY1,用机智云的手机App进行连接调试。
![dfc567ee-ef6c-11ec-ba43-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/81/wKgaomTnA7iAAnP8AAHRkSXvVqY993.png)
![dfea845c-ef6c-11ec-ba43-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/81/wKgaomTnA7mAA87LAABJk6XtMnA307.png)
4、演示效果
进入即可控制LED的亮灭。
![e003ad1a-ef6c-11ec-ba43-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/81/wKgaomTnA7mAAYRdAABFbfWChOE190.png)
原文标题:正点原子探索版STM32F407,接入机智云之代码移植
文章出处:【微信公众号:机智云开发者】欢迎添加关注!文章转载请注明出处。
审核编辑:汤梓红
-
移植
+关注
关注
1文章
384浏览量
28214 -
开发板
+关注
关注
25文章
5152浏览量
98471 -
STM32F407
+关注
关注
15文章
188浏览量
29710 -
机智云
+关注
关注
2文章
591浏览量
26475 -
正点原子
+关注
关注
9文章
29浏览量
10054
原文标题:正点原子探索版STM32F407,接入机智云之代码移植
文章出处:【微信号:IoTMaker,微信公众号:机智云开发者】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
【AI开发板】正点原子K230D BOX开发板来了!一款性能强悍且小巧便携的AI开发板!
【正点原子STM32H7R3开发套件试用体验】开发套件开箱报告
STM32F407 MCU使用SD NAND 不断电初始化失效解决方案
![<b class='flag-5'>STM32F407</b> MCU使用SD NAND 不断电初始化失效解决方案](https://file1.elecfans.com/web3/M00/01/D6/wKgZPGdY_fiAfhvVAAES2FwC9UU093.png)
正点原子fpga开发板不同型号
正点原子和野火开发板哪个好
【干货】有了这份HK32F407ZGT7开发板介绍,1万个项目轻松拿捏!
![【干货】有了这份HK32<b class='flag-5'>F407</b>ZGT7<b class='flag-5'>开发板</b>介绍,1万个项目轻松拿捏!](https://file1.elecfans.com/web2/M00/A4/0C/wKgaomUACo-Ae1rtAAB1LgQrdkg565.png)
评论