综合技术交流
登录
直播中
kiki
9年用户
1604经验值
擅长:存储技术 存储技术 存储技术
私信
关注
[经验]
正点原子探索版STM32F407,接入机智云之代码移植
STM32F407
机智云
正点原子官方提供了与机智云连接的开发手册,但是手册内容中的Gizwits文件目录和目前的机智云自动生成的代码目录有一定的差异,因此移植过程有了一些改变。为了方便大家针对新版机智云的代码进行移植,也为了给自己的移植过程做一个记录,特此写下正点原子探索者
STM32
F497的移植过程。
移植步骤
在机智云物联网开发平台新建设备,数据点,生成代码(选择其他平台)并下载。
注意:
机智云物联网开发平台dev.gizwits.com
推荐使用最新的esp8266机智云GAgent固件,其下载地址:/download.gizwits.com/zh-cn/p/92/94
选择生成其他平台的代码是标准库,选择F407平台则生成的是HAL库。
2.
打开正点原子的移植代码:
文件路径:
将我们下载的自动生成的代码中的Gizwits文件夹和U
ti
ls文件夹复制到正点原子的移植代码目录中,提示覆盖点击确定即可。
打开工程,将Utils文件夹添加到头文件路径中
在
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
{
GIZWITS_LOG("%02x ", buf
);
}
GIZWITS_LOG("n");
#endif
for(i=0; i
{
//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);
移植完成
编译下载到
开发板
即可。
按下KEY1,用机智云的
手机
App进行连接调试。
进入即可控制LED的亮灭。
更多回帖
rotate(-90deg);
回复
相关帖子
STM32F407
机智云
正点
原子
探索
版
STM32F407
,
接入
机智
云
之
代码
移植
1847
基于
正点
原子
探索
者
STM32F
497的
机智
云
代码
移植
教程
2083
STM32F407
Ucos
移植
代码
19
RT-Thread文档_
正点
原子
探索
者
STM32F407
上手指南
13
正点
原子
STM32F407
开发板的
移植
过程
3373
stm32f407
探索
版
4985
正点
原子
F407
/
F
103,
接入
机智
云
,点亮LED
4595
FreeRTOS
移植
-基于
STM32F407
4065
使用Mbed轻松编程
STM32F407
探索
板
4
MPU6050
移植
教程(
探索
者外接MPU6050-基于
原子
stm32f407
例程)
13
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分