<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/tuya" frameborder="0" scrolling="auto" width="100%" height="500"></iframe></p>緩存
我使用的模組爲WBR3 Wi-Fi&Bluetooth函數
單片機使用的STM32測試
假設使用串口2和模組通訊spa
1.下載單片機數據解析發送包日誌
2.把上面下載的mcu_sdk文件夾拷貝到本身的工程blog
3.添加到工程隊列
4.編譯一下工程input
1.這個錯誤是由於變量沒有定義到開始的位置iframe
2.修訂源碼
1.把uart_receive_input函數放到串口2接收中斷裏面,形參是串口2接收的數據
2.包含 wifi.h頭文件
3.把 uart_receive_input 函數放到串口接收中斷
3.屏蔽
4.編譯下
這是由於塗鴉的SDK裏面也有這個定義
直接在wifi.h裏面屏蔽掉ENABLE和DISENABLE的定義
而後加上單片機的頭文件
1.塗鴉作版本替代的時候弄錯了
2.把DP_TYPE_FAULT 改成 DP_TYPE_BITMAP 就能夠
這個地方意思是若是你的單片機一次性緩存多個字節
就調用這個函數,咱一開始已經使用uart_receive_input 接收了
因此這個屏蔽就能夠
修改後
修改後
修改
1.關閉這個功能就能夠
2.屏蔽
mcu_set_wifi_mode(SMART_CONFIG);
注意裏面有個 SmartConfigStartFlag = 1;
這個和指示燈配合使用.
1.打開遠程升級
SUPPORT_MCU_FIRM_UPDATE
2.編譯以後,屏蔽掉這個錯誤便可
3.我準備了一份 操做flash的文件,用戶拷貝到本身的工程,而後根據本身的項目更改
4.在接收更新數據裏面寫上下面的程序
5.用戶程序還須要清除升級標記
6.打開BootLoader
7.下面的地方要和用戶程序保持一致
8.把BootLoader下載到單片機
9.根據打印的信息調整用戶程序
10. 把用戶程序下載到單片機
注:爲了避免擦除原先下載的BootLoader程序,須要選擇只擦除使用的部分
11.若是沒有下載器,使用串口下載,可按照下面的步驟下載
1.用記事本打開BootLoader程序的hex文件
2.用記事本打開用戶程序的hex文件
3.刪除用戶程序的hex數據的第一行和最後一行
4.最終用戶程序
5.複製修改後的用戶程序的hex數據(所有複製)
6.把複製的數據粘貼到BootLoader文件的下面的位置
7.粘貼後的樣子
8.而後把組合後的hex文件下載到單片機裏面便可
12.若是正常運行了用戶程序,再接着下面的步驟!
13.修改用戶程序的 版本號
14.配置生成bin文件
$K\ARM\ARMCC\bin\fromelf.exe --bin --output=bin\user.bin !L
15.編譯以後會在工程目錄的bin文件夾生成bin文件
16.在塗鴉平臺上選擇新增自定義固件
17.按照本身的填寫
18.選擇OTA升級
14.新增固件版本
19.固件版本和用戶程序裏面保持一致,上傳用戶程序的bin文件
20.點擊驗證固件
21.使用塗鴉APP綁定模組!點擊設備信息,查看設備ID
22.把設備ID添加測試
23.給模組斷電上電,從新打開APP,會看到APP提示升級
1.假設返回燈的開關狀態,假設0是關,1是開
注意這個裏面是上報全部數據的地方,默認是模組本身去調用這個函數,來獲取全部數據.
本身還須要調用 mcu_dp_bool_update這個函數 在燈改變的時候上報數據
注意:其它的數據也須要這樣子處理!!!!
2.接收處理APP發送的控制燈命令
注:只要接收到相應的控制指令就會進入相應的控制函數,裏面的具體功能本身實現
3.上報string類型的數據
這種數據上報還須要上報string數據長度
4.string類型數據接收
1.有兩個時間,一個是格林時間,一個是當地區時的時間
注:若是要銷往國外,建議使用當地區時時間
2.打開本地區時時間
3.編譯
在此函數裏面獲取時間
4.只有發送命令的時候才能獲取
5.補充知識點-時間轉換爲時間戳
6.補充知識點-時間戳轉時間
1.從新下載SDK
2.把最新的SDK的這個地方新的程序段對比修改或者拷貝到如今的源碼裏面的這個地方
3.這個地方也是對比修改或者拷貝下
4.下面的接收處理也對比修改或拷貝過來
5.這個函數裏面也對比拷貝下
若是模組對比了下和之前數據同樣,則模組就不會上報相同的數據.
若是須要讓後臺接收這種數據,須要和塗鴉的技術那邊說一下
讓他在後臺設置下.
建議在模組升級過程當中不執行其它程序
建議用戶用一個變量控制下
這個頗有必要!
這個頗有必要!
這個頗有必要!
推薦的方式:定義一個升級標誌變量,一個累加變量
在升級時設置升級標誌置一,同時清除升級累加變量
定時器裏面
主函數
注意:最好是加個環形隊列用中斷髮送,這樣子不耽誤整個程序運行