STM32CubeIDE導入機智雲在線自動生成的STM32工程(基於MDK環境


STM32CubeIDE導入機智雲在線自動生成的STM32工程(基於MDK環境)

最近在嘗試基於機智雲的STM32設備接入物聯網雲平台,使用的開發板是淘寶上購買的STM32最小系統評估版(基於STM32F103C8T6)。機智雲可以根據設備、數據點的設置自動生成一個STM32工程簡化開發,這個方式很棒,可以節省很多時間,(即機智雲自助開發平台的MCU代碼自動生成功能)然而,糟糕的是,ST更新其官方開發IDE為STM32CubeIDE。

 

STM32CubeIDE是把Attolic的TrueStudio(基於Eclipse)和ST的芯片配置軟件CubeMX打包在一起提供的免費開發IDE,之前是分別獨立提供,還需要用戶自己將二者集成。STM32CubeIDE是2019年新推出的,而機智雲生成的示例代碼是基於CubeMX和ARM MDK開發環境,其中CubeMX的代碼庫基於F103_Firmware_v1.6(CubeIDE是v1.8)。因此,只需要做幾點小改動,就能成功導入機智雲開發平台自動生成的MCU代碼包,為己所用了。

 

IDE的不同引入了一些問題,具體如下:

 

1、生成代碼的CubeMX文件(.ioc文件)無法在CubeIDE中直接打開,報錯信息如下

Invalid Input: Must be project’s active .ioc file.Project’s ‘MCU_STM32F103C8x_source’ active one is ‘MCU_STM32F103C8x_source.ioc’ file

這是因為ioc文件名(STM32F103C8x.ioc)與工程文件名(MCU_STM32F103C8x_source)不一致,修改兩者中其一保持一致后此問題消失。

 

2、然后后新的問題出現了,CubeMX器件視圖里一篇空白,正常應該顯示芯片管腳圖,如下所示
進一步查看報錯信息,如下所示
<ignore_js_op>
具體錯誤信息如下

Unable to create partInvalid Input: Must be project’s active .ioc file.com.st.stm32cube.ide.mcu.ide/META-INF/version/build_ref file not found, build reference will not be reported into properties

經過嘗試,此問題是由於CubeIDE使用了高版本的CubeMX,而機智雲生成的工程基於老版本的CubeMX文件,所以無法打開。解決方法如下
  • 在ST官網上下載最新版本的CubeMX軟件(單獨的CubeMX)
  • 用CubeMX單獨打開.ioc文件,此時可以看到器件能夠正常顯示
  • 無需更改任何芯片配置,直接在CubeMX中選擇Save保存.ioc文件
  • 此時用CubeIDE就可以打開.ioc文件

 

我猜測,CubeIDE由於剛剛推出,集成的CubeMX和獨立安裝的CubeMX還是有所差別,導致對老版本的ioc文件兼容性並不好,后續應該會隨着軟件升級解決,當前只能通過以上的方式修復ioc文件(其實是將其升級到最新版本的格式)后再用CubeIDE集成的CubeMX打開。

 

3、MDK工程的文件組織結構與TrueStudio的不同,編譯時出現大量錯誤。

此問題我還沒有找到很好的解決辦法,只能采用最笨的方式,新建一個CubeIDE工程,手動移植過去。后續如果有更好的辦法,我會更新在文章的后面。

 

至此,整個的工程移植就完成了。

 

 

相關推薦:


免責聲明!

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



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