在2017年機智云和正點原子聯(lián)袂發(fā)布正點原子接入機智云教程,提供了一整套基于STM32開發(fā)板的接入教程和實例源碼,從平臺配置到程序配置,為開發(fā)人員提供一種便捷的接入云平臺方案。
所有正點原子STM32開發(fā)板(除mini外)均具有ATK-Module接口,只需要把ATK-ESP8266模塊直接連接到該接口即可。mini開發(fā)板需要通過杜邦線鏈接。
換句話說,所有正點原子的開發(fā)板都可以輕松連云了,幾小時搞定遠程控制。
教程下載地址:http://pan.baidu.com/s/1geUdgJ5
但是由于時間過長,手冊內(nèi)容中的Gizwits文件目錄和目前的機智云自動生成的代碼目錄有一定的差異,因此移植過程有了一些改變。
為了方便大家針對新版機智云的代碼進行移植,也為了給自己的移植過程做一個記錄,特此寫下正點原子探索者STM32F407的移植過程。
移植步驟
1、創(chuàng)建項目,定于數(shù)據(jù)點,生成MCU代碼包
先登陸機智云自助開發(fā)平臺dev.gizwits.com
創(chuàng)建智能項目
定義數(shù)據(jù)點
生成MCU代碼(選擇其他平臺)并下載
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)
-
//數(shù)據(jù)采集
void userHandle(void)
{
//判斷當前LED1開關量
if(LED1==0)
currentDataPoint.valueLEDonoff = 1;
else
currentDataPoint.valueLEDonoff = 0;
}
剪切到gizwits_product.c中的對應位置
-
//下面的void userHandle(void)是我們從main.c中剪切過來的
//數(shù)據(jù)采集
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
//實現(xiàn)串口發(fā)送函數(shù),將buf發(fā)送到模組
USART_SendData(USART3,buf);
while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET); //循環(huán)發(fā)送,直到發(fā)送完畢
if(i >=2 && buf == 0xFF)
{
//實現(xiàn)串口發(fā)送函數(shù),將0x55發(fā)送到模組
USART_SendData(USART3,0x55);
while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET); //循環(huán)發(fā)送,直到發(fā)送完畢
}
}
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、編譯、調(diào)試
編譯下載到開發(fā)板即可。
按下KEY1,用機智云的手機App進行連接調(diào)試。
4、演示效果
進入即可控制LED的亮滅。
原文標題:正點原子探索版STM32F407,接入機智云之代碼移植
文章出處:【微信公眾號:機智云開發(fā)者】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
審核編輯:湯梓紅
-
移植
+關注
關注
1文章
379瀏覽量
28124 -
開發(fā)板
+關注
關注
25文章
5032瀏覽量
97371 -
STM32F407
+關注
關注
15文章
187瀏覽量
29436 -
機智云
+關注
關注
2文章
587瀏覽量
26392 -
正點原子
+關注
關注
9文章
27瀏覽量
9907
原文標題:正點原子探索版STM32F407,接入機智云之代碼移植
文章出處:【微信號:IoTMaker,微信公眾號:機智云開發(fā)者】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論