前言
學習此代碼所需:
實現功能概要
定時使用http訪問雲端的程序版本,如果版本不一致,然后通過http下載最新的升級文件,實現升級.
測試准備工作(默認訪問我的服務器,改為自己的服務器,請看后面說明)
一,下載BootLoader程序(請自行下載)
二,調整波動開關位置,STM32和Wi-Fi 串口 通信
三,短接STM32的PB2和Wi-Fi模塊的RST引腳(內部程序使用該引腳硬件復位Wi-Fi)
四.兩個串口模塊的RX,分別接到單片機的PA9和PA10.
4.1注:此為監控STM32和Wi-Fi之間的數據,看到更新的過程.
4.2 示意圖
開始測試
一,打開可以配網的APP,給Wi-Fi配網
請參考基礎篇: https://www.cnblogs.com/yangfengwu/p/11760590.html
二,配網成功后,默認重啟以后更新程序文件,更新完成以后自動加載更新的用戶程序
2.1 單片機發送數據,TX端數據監控
2.1 單片機接收數據,RX端數據監控
修改為連接自己的服務器
一,修改BootLoader,和兩份用戶程序連接的Web服務器的IP地址,端口號信息
二,Http訪問程序文件的路徑請自行根據自己的修改,我按照我自己的說明
2.1 根據單片機程序訪問的路徑,在Web服務器建立文件夾
2.2 拷貝記錄設備版本的updatainfo.txt文件,和用戶程序1文件(Progect.bin),用戶程序2文件(Progect2.bin)到服務器
最終效果
三,大家設置完自己的,重新按照上面的測試一下,看下可不可以測試通過
如果有問題,可自行找原因,或者在QQ群里面詢問:607064330
四,修改雲端版本
五,用戶程序檢測到新版本,寫入更新標志,重啟,更新另一份程序,重啟,運行新程序
五,測試程序有問題,實現程序回滾
5.1 下次該更新程序2了,咱把程序2文件打開以后隨便折騰下
自己隨意改改,或者增加點,或者刪除點
六,修改完以后,保存下,然后改一下版本號,讓軟件把有問題的程序更新進去
七,看下打印的信息
注:現在是定時訪問程序文件,如果程序文件一直有問題,將會一直如此循環
正常使用時,自己把程序文件放到服務器以后,自己測試沒有問題以后再改變版本號.
該測試是測試假設寫入的程序文件里面的數據有問題時,實現程序回滾
其它
一,可先下載第一份程序到單片機,讓單片機默認運行一份程序
1.1 操作步驟是先現在BootLoader程序(下載進去就可以,不需要任何配置)
1.2 下載第一份用戶程序(程序默認加載第一份用戶程序),請按照下面配置下載
此時單片機啟動以后便會運行第一份用戶程序.