說明:本系列教程基于正點原子stm32f1 nano開發板,其他開發板僅供參考!
3.1 轉換插件使用方法
由于市面上絕大部分STM32教程是基于Keil軟件教學,而ECloudIDE是基于GCC編譯器(gcc-arm-none-eabi),兩者在工程管理上存在一些差異,無法直接使用,我們團隊提供了一個轉換插件用與將Keil工程轉換成ECloudIDE工程。
圖3.1 Keil5與GNU吉祥物
keil2platformio碼云gitee鏈接:https://gitee.com/wllis121/keil2ecloudide
目前該插件只支持Keil5軟件和STM32F10x系列芯片,其他芯片還在抓緊測試驗證中...,此處以'實驗3 按鍵實驗'為例演示如何轉換Keil工程為ECloudIDE工程
第一步:復制'keil2platformio'插件到工程目錄下
圖3.2 keil2platformio文件夾拷貝位置
第二步: 運行''插件
進入到實驗代碼路徑中,運行'keil2platformio/keil2platformio.py'文件, ./USER/為xx.uvprojx文件所在目錄python keil2platformio/keil2platformio.py ./USER/ 運行完后會出現下面效果
圖3.3 正常運行keil2platformio.py轉換keil5工程效果
圖3.4 成功轉換keil5生成的platformio.ini文件
第三步:打包上傳代碼至ECloudIDE
將生成在USER下的platfomio.ini文件拷貝的本實驗文件的主目錄下,如圖3.5所示,然后將其壓縮成xx.zip文件
圖3.5 更改platformio.ini文件位置,并壓縮成xx.zip文件
第四步:修改編譯錯誤
修改位置1:
將第36行的'+ [platformio] include_dir = . src_dir = .[env:KEY] platform = ststm32 framework = cmsis board = generic build_flags = -IHARDWARE/LED -ISYSTEM/delay -ISYSTEM/sys -ISYSTEM/usart -IUSER -ISTM32F10x_FWLib/inc -ICORE -IHARDWARE/KEY -IHARDWARE/BEEP -D__nop=__NOP build_src_filter = -<*> + + + + + + + + + 修改位置2: 出現圖3.6所示錯誤時,需要將stm32f10x.h中的'#define STM32F10X_MD'宏定義打開,然后再次編譯 圖3.6 提示stm32f10x.h錯誤 圖3.7 芯片類型宏定義選項 修改位置3: 出現如圖3.8所示語法錯誤時,需要將keil編譯器識別的匯編語法全部修改為gcc所能識別的語法 圖3.8 匯編語法錯誤 修改前sys.c文件中的keil能識別的匯編語句,位于文件第124~144 //THUMB指令不支持匯編內聯 //采用如下方法實現執行匯編指令WFI __asm void WFI_SET(void) { WFI; } //關閉所有中斷 __asm void INTX_DISABLE(void) { CPSID I; } //開啟所有中斷 __asm void INTX_ENABLE(void) { CPSIE I; } //設置棧頂地址 //addr:棧頂地址 __asm void MSR_MSP(u32 addr) { MSR MSP, r0 //set Main Stack value BX r14 } 修改后sys.c文件中的gcc能識別的匯編語句 //THUMB指令不支持匯編內聯 //采用如下方法實現執行匯編指令WFI void WFI_SET(void) { asm('WFI'); } //關閉所有中斷 void INTX_DISABLE(void) { asm('CPSID I'); } //開啟所有中斷 void INTX_ENABLE(void) { asm('CPSIE I'); } //設置棧頂地址 //addr:棧頂地址 void MSR_MSP(u32 addr) { asm('MSR MSP, r0'); //set Main Stack value asm('BX r14'); } 圖3.9 編譯工程 圖3.10 下載工程 到這里我們就完成了按鍵實驗Keil工程到ECloudIDE工程的轉換,其它例子也都可以按照這個方法來進行。 官方參考文章:https://rw7mwduiy2.feishu.cn/wiki/MRMIwjnRqi0PpGkOxULcxHUbnNc第五步:編譯下載
上一篇:Simulink STM32F407VGT6實現硬件在環
下一篇:(一) ECloudIDE入門STM32-CubeMX工程創建與導入
推薦閱讀最新更新時間:2025-04-04 16:43

設計資源 培訓 開發板 精華推薦
- 迅為IMX6開發板Android應用-AndroidStudio-calculator測試
- 玩轉 ESP32 + Arduino (二十) SIM800L上傳數據到OneNet(新版Mqtts)
- 玩轉 ESP32 + Arduino (二十一) SPIFFS文件系統 (已棄用)
- 玩轉 ESP32 + Arduino (二十二) SIM800L上傳數據到阿里IOT(溫濕度和LBS)(NTP對時)
- 玩轉 ESP32 + Arduino (二十三) 多文件系統及全局變量
- 玩轉 ESP32 + Arduino (二十四) SD卡讀寫
- 玩轉 ESP32 + Arduino (二十五) SSD1306庫驅動OLED
- 玩轉 ESP32 + Arduino(二十六) 按鍵控制庫 OneButton
- 玩轉 ESP32 + Arduino(二十七) ESP對象
- XDC560P100S256K、XKT560P評估系統支持飛思卡爾MPC560xP MCU
- LTC3130IMSE 12V、600mA 降壓-升壓型 DC/DC 轉換器的典型應用
- AD8604ARUZ-REEL 高端運算放大器電流監視器的典型應用
- 使用 Analog Devices 的 LT1110CN8 的參考設計
- EVAL-AD5245DBZ,AD5245 數字電位器評估板
- 基于TPS54360的可調BUCK電路
- LT1634ACS8-2.5 微功率電壓和電流基準的典型應用
- 使用 Infineon Technologies AG 的 OM7604ST 的參考設計
- 使用 Microchip Technology 的 TC9491B 的參考設計
- 使用 ON Semiconductor 的 STK350-030 的參考設計