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

在2017年机智云和正点原子联袂发布正点原子接入机智云教程,提供了一整套基于stm32开发板的接入教程和实例源码,从平台配置到程序配置,为开发人员提供一种便捷的接入云平台方案。
所有正点原子stm32开发板(除mini外)均具有atk-module接口,只需要把atk-esp8266模块直接连接到该接口即可。mini开发板需要通过杜邦线链接。
换句话说,所有正点原子的开发板都可以轻松连云了,几小时搞定远程控制。
教程下载地址:http://pan.baidu.com/s/1geudgj5
但是由于时间过长,手册内容中的gizwits文件目录和目前的机智云自动生成的代码目录有一定的差异,因此移植过程有了一些改变。
为了方便大家针对新版机智云的代码进行移植,也为了给自己的移植过程做一个记录,特此写下正点原子探索者stm32f497的移植过程。
移植步骤
1、创建项目,定于数据点,生成mcu代码包
先登陆机智云自助开发平台dev.gizwits.com
创建智能项目
定义数据点
生成mcu代码(选择其他平台)并下载
推荐使用最新的esp8266机智云gagent固件
gagent固件下载地址
download.gizwits.com/zh-cn/p/92/94
选择生成其他平台的代码是标准库
选择f407平台则生成的是hal库。
2.进行移植
打开mcu代码包正点原子的移植代码
可以看到如下文件路径:
将我们第一步骤下载的“mcu代码包”进行解压缩,随后将gizwits文件夹和utils文件夹复制到正点原子的移植代码目录中,提示覆盖点击确定即可。
打开工程,将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_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、编译、调试
编译下载到开发板即可。
按下key1,用机智云的手机app进行连接调试。
4、演示效果
进入即可控制led的亮灭。
原文出自:https://mbb.eet-china.com/blog/3934591-420668.html

一个机器人进行自动化升级改造,应该加一些什么设备呢?
Bosch为什么要在美国生产SiC?
思科芯片的发展之路
FlyPods 3知更鸟蓝配色公布 定价799元
倍科电器该如何改变山寨品牌风波的局面
正点原子探索版STM32F407,接入机智云之代码移植
小米7价格曝光,性能提升或超3000元
全国首个覆盖全省的5G远程诊断项目在海南落地
网曝乐视LEX622型号智能手机将搭载Helio X20处理器
MBD模型设计的PWM输出步骤和方法
科技部部长王志刚:中国已进入人工智能发展的第一方阵
一款250 GB的970EVO Plus来看看它表现如何
中信联研制《数字化转型 参考架构》等标准
中国移动1000亿投资为5G生态建设重大举措
自然形态的LED吊灯Bertjan Pot
【RT-Thread学习笔记】使用scons命令生成静态库
多只二极管取样式电流指示灯
深入分析OPPO RX17 Pro智能手机中的索尼(Sony)IMX316和VCSEL
关于智能教育的相关解读和分析
Atmel携手Celeno开发Wi-Fi Direct遥控技术