ESA2GJK1DH1K升級篇: STM32遠程乒乓升級,基於GPRS模塊AT指令TCP透傳方式,定時訪問升級


 

 

 

實現功能概要

 

  單片機定時使用http訪問雲端的程序版本,如果版本不一致,

  然后通過http下載最新的升級文件,實現遠程升級STM32程序.

  兼容Air202 ,SIM800

 

測試准備工作(默認訪問我的服務器,改為自己的服務器,請看后面說明)

一,下載BootLoader程序(請自行下載)

  

 

 

 

 

 

 

二,調整波動開關位置,STM32和GPRS 串口1 通信

  

  

二,別忘了插手機卡,還有安裝上天線

  

 

三.准備兩個串口模塊,兩個串口模塊的RX,分別接到單片機的PA9和PA10.

  4.1注:此為監控STM32和GPRS之間的數據,看到更新的過程.

    

  4.2 示意圖

    

    

開始測試

一.當前只下載了BootLoader程序,在BootLoader程序里面實現更新,需要按照下面操作

  長按PB5大約4S,等待指示燈快閃,松開PB5,指示燈閃耀3S以后,程序寫入更新標志位,然后重啟 

    

二.監控的數據

  

 

 

 

  

三.實際應用請使用一個引腳控制模塊重啟

  3.1 請在每個程序文件的此處修改(注,本人的板子現在未引出復位引腳,下一批板子將跟進)

    

  

  3.2 如果沒有復位可能出現一直發送  AT+CIPSHUT ,模塊要等到好久才有反應

  現在測試可人為進行復位!

    

四.運行用戶程序,每隔30S訪問一次雲端程序版本

 

  

 

修改為連接自己的服務器

一,修改BootLoader,和兩份用戶程序連接的Web服務器的IP地址,端口號信息

  

 

 

   

 

 

 

  

 

二,Http訪問程序文件的路徑請自行根據自己的修改,我按照我自己的說明

  2.1 根據單片機程序訪問的路徑,在Web服務器建立文件夾

    

    

 

 

  

  2.2 打開上位機軟件,計算兩份用戶程序的SUM值

    

 

 

 

 

    

 

    

 

  2.3 計算第一份用戶程序的校驗值,並替換SumBin1的字段值

    

 

  2.4 計算第二份用戶程序的校驗值,並替換SumBin2的字段值

    

 

 

 

 

  

 

 

 

 

 

  2.2 拷貝記錄設備版本的updatainfo.txt文件,和用戶程序1文件(Progect.bin),用戶程序2文件(Progect2.bin)到服務器

    

 

 

 

 

 

 

    

    

 

 

 

 

 

 

 

  最終效果

    

修改完了,然后按照文章一開始的測試

  升級成功以后用戶程序里面在定時詢問是不是有新版本

  咱剛升級進去的肯定是新版本.

  咱到雲端修改下版本

四,修改雲端版本

  

 

 

  

五,用戶程序檢測到新版本,寫入更新標志,重啟,BootLoader更新另一份程序,重啟,運行新程序

  

 

 

 

其它

一,可先下載第一份程序到單片機,讓單片機默認運行一份程序

  1.1 操作步驟是先下載BootLoader程序(下載進去就可以,不需要任何配置)

  1.2 下載第一份用戶程序(程序默認加載第一份用戶程序),請按照下面配置下載

    

 

 

 

 

 

 

 

此時單片機啟動以后便會運行第一份用戶程序.

  

 

 

 

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM