正点原子官方提供了与机智云连接的开发手册,但是手册内容中的Gizwits文件目录和目前的机智云自动生成的代码目录有一定的差异,因此移植过程有了一些改变。为了方便大家针对新版机智云的代码进行移植,也为了给自己的移植过程做一个记录,特此写下正点原子探索者STM32F497的移植过程。
移植步骤
在机智云物联网开发平台新建设备,数据点,生成代码(选择其他平台)并下载。注意:机智云物联网开发平台dev.gizwits.com推荐使用最新的esp8266机智云GAgent固件,其下载地址:/download.gizwits.com/zh-cn/p/92/94选择生成其他平台的代码是标准库,选择F407平台则生成的是HAL库。
2.打开正点原子的移植代码:
文件路径:
将我们下载的自动生成的代码中的Gizwits文件夹和Utils文件夹复制到正点原子的移植代码目录中,提示覆盖点击确定即可。
打开工程,将Utils文件夹添加到头文件路径中
在gizwits_product.c中加入led.h和usart3.h
修改 dataPoint_t currentDataPoint 为 extern dataPoint_t currentDataPoint 找到以下代码,并加入 将main.c中的 void userHandle(void) 剪切到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<len; i++) { GIZWITS_LOG("%02x ", buf); } GIZWITS_LOG("\n"); #endif for(i=0; i<len; 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); 处加入如下代码 在gizwits_product.h中加入 void gizTimerMs(void); void userInit(void); void userHandle(void); void mcuRestart(void); //下面的一行是我们后面加入的 void gizTimerMs(void);
移植完成
编译下载到开发板即可。
按下KEY1,用机智云的手机App进行连接调试。
进入即可控制LED的亮灭。
|