在《STM32與機智云連接實現(xiàn)步驟與技巧(上篇)》中,我們介紹了硬件連接和通信協(xié)議配置。本篇將重點講解如何將機智云相關代碼移植到STM32,完成數(shù)據(jù)上傳和設備控制。我們將介紹如何在STM32中配置機智云SDK,集成API,實現(xiàn)數(shù)據(jù)傳輸和設備狀態(tài)同步,并分享移植過程中的常見問題及解決方法,幫助開發(fā)者順利實現(xiàn)云端連接。
機智云相關代碼開始移植
相關移植步驟
1、實現(xiàn)與模組通信串口驅(qū)動
2、實現(xiàn)串口打印函數(shù)printf();
3、實現(xiàn)1ms定時器,gizTimerMs()維護系統(tǒng)時間 (提供時基)
4、實現(xiàn)MCU復位函數(shù),模組可請求MCU復位
5、實現(xiàn)配置入網(wǎng)功能,調(diào)用gizwitsSetMode()函數(shù)實現(xiàn)模組配網(wǎng)功能
6、實現(xiàn)userHandle()數(shù)據(jù)的采集(上行邏輯)
7、實現(xiàn) gizwitsEventProcess()控制命令的具體執(zhí)行(下行邏輯)
1、WIFI串口接收數(shù)據(jù)寫入緩沖區(qū)
串口包含這個機智云的頭文件
2、實現(xiàn)uartWrite()串口發(fā)送數(shù)據(jù)
在該文件中找到uartWrite()這個函數(shù),并在給文件上方添加所用串口的.h文件
該函數(shù)修改為
(代碼部分請點擊文末查看原文以獲取詳細內(nèi)容)
實現(xiàn)毫秒定時
對于使用的定時器4,中斷里添加相應代碼
(代碼部分請點擊文末查看原文以獲取詳細內(nèi)容)
編譯會出現(xiàn)警告,找不到該函數(shù),gizTimerMs();函數(shù)沒有定義,在gizwits_product.h文件中進行定義。
實現(xiàn)芯片復位函數(shù)
修改該函數(shù)在gizwits_product.h文件中
改為下邊的代碼
(代碼部分點擊查看原文進行查閱)
實現(xiàn)配置入網(wǎng)
模組支持 SoftAp 和 AirLink 兩種方式配置入網(wǎng), 相應接口為 gizwitsSetMode(), 三種模式如下:
WIFI_RESET_MODE 恢復默認出廠設置
WIFI_SOFTAP_MODE 熱點配網(wǎng)
WIFI_AIRLINK_MODE 手機廣播配網(wǎng)
在此之前主函數(shù)中添加頭文件
以及初始化
添加機智云初始化代碼,本次選擇了airlink配網(wǎng)模式
(代碼部分點擊查看原文進行查閱)
協(xié)議處理
根據(jù)采集到的數(shù)據(jù),然后調(diào)用函數(shù) gizwitsHandle()、userHandle()上報,函數(shù)位置在gizwits_protocol.c文件中,該函數(shù)主要完成協(xié)議數(shù)據(jù)的處理及數(shù)據(jù)主動上報的相關操作,到這一步,配網(wǎng)就結(jié)束了,接下來開始配置自己需要傳輸?shù)臄?shù)據(jù)。
(代碼部分請點擊文末查看原文以獲取詳細內(nèi)容)
數(shù)據(jù)上下發(fā)配置
上發(fā)數(shù)據(jù)用到的函數(shù)為userHandle(),這個函數(shù)是在gizwits_protocol.c中
如圖,本設計一開始將參數(shù)都初始化為0
采集數(shù)據(jù)的函數(shù)
該函數(shù)中內(nèi)容作為機智云app下發(fā)數(shù)據(jù)
實驗現(xiàn)象
WIFI連接出現(xiàn)的問題
出現(xiàn)timeout超時,可能原因是主函數(shù)中給了延時函數(shù),可以嘗試屏蔽掉。如果出現(xiàn)連接數(shù)據(jù)傳輸不穩(wěn)定,WIFI連接容易掉,可以嘗試一下。
注釋掉箭頭指向的這三行
并且把這個語句能搜索到的全部注釋掉,可以ctrl+f 搜索都在這兩個文件中。
這個主要是串口1打印內(nèi)容(gizwits_product.c,gizwits_protocol.c)
-
STM32
+關注
關注
2290文章
11018瀏覽量
362918 -
機智云
+關注
關注
3文章
611瀏覽量
26760
發(fā)布評論請先 登錄
機智云自動生成工程移植STM32CubeMX
STM32CubeMX移植機智云自動生成代碼詳解
STM32+機智云WebSocket實現(xiàn)物聯(lián)網(wǎng)游戲
基于STM32和機智云IoT云服務平臺的智能花盆
【開源案例】雙STM32和機智云,一起打造“優(yōu)美”的數(shù)字儀表
移植機智云代碼到STM32F103
基于STM32與esp8266機智云app聯(lián)網(wǎng)總結(jié)
機智云官方生成的MCU代碼(hal庫)移植為STM32標準庫教程

基于機智云移植STM32L496G代碼移植

STM32與機智云連接實現(xiàn)步驟與技巧(上篇)

評論