娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

(二)ECloudIDE入門STM32-官方寄存器版例程使用

發布者:Xiaohan521最新更新時間:2025-03-14 關鍵字:STM32 手機看文章 掃描二維碼
隨時隨地手機看文章

說明:本系列教程基于正點原子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

STM32F103RB

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


關鍵字:STM32 引用地址:(二)ECloudIDE入門STM32-官方寄存器版例程使用

上一篇:Simulink STM32F407VGT6實現硬件在環
下一篇:(一) ECloudIDE入門STM32-CubeMX工程創建與導入

推薦閱讀最新更新時間:2025-04-04 16:43

1+X 傳感網中級備考STM32:HAL庫之GPIO函數功能介紹
1.函數存放路徑 HAL庫的GPIO函數,存放路徑如圖1所示:路徑Driver/STM32F1xx_HAL_Driver/stm32f1xx_hal_gpio.c,其中一級文件夾STM32F1xx_HAL_Driver存放的是ST公司提供的HAL庫頭文件和源文件,也就是所有底層硬件抽象層API接口函數的聲明和定義;之前大家學習51單片機都是直接對寄存器進行配置,而對于STM32數百個寄存器直接配置將非常繁瑣;HAL庫提供的這一整套API方便開發者直接調用函數,不需要去知道操作的哪個寄存器; 但這不是說寄存器相關原理就完全不用學習了,相反,在STM32的學習過程中,大家既要知道函數的功能,也要了解各個外設的硬件運行機制;這樣HAL庫
[單片機]
IAR STM32 BootLoader
STM32 Bootloader與APP IROM中可以分成兩個區域,起始代碼運行地址為0x08000000,這是基本固定的,可以將IROM的0x08000000 ~ 0x08002000這8KB的空間存放Bootloader代碼,而0x08002000 ~ 上限的位置存放APP代碼。 需要實現兩個工程,分別為bootloader工程與app工程。 1.1 先說bootloader工程,以IAR為例 建立基本stm32工程需要的工程文件等,工程的建立這里不去說明,有了工程后,需要將該工程代碼的鏈接地址配置為0x08000000 ~ 0x08002000,對于IAR可以在icf文件中進行修改參數達到效果,也可在工程配置中修
[單片機]
STM32 Complier Warning or errors
1. File Not Found refer: https://blog.csdn.net/u014266675/article/details/71108552?locationNum=8&fps=1 原因:文件雖然建立,但是對應的文件關系沒有在編譯option里面體現, 方法:如圖所示:
[單片機]
STM32結合ESP8266初始準備
使用STM32C8T6最小系統板+ESP8266兩者通過串口連接。使用單片機的UART1串口。 PA9 - USART1(Tx) PA10 - USART1(Rx) 注意:ESP8266必須使用5V供電 為了使得STM32接收ESP8266的數據能看到,將接收到的數據通過UART2串口發送打印在電腦上。 PA2---USART2_TX PA3---USART2_RX 初始化UART1、UART2 UART1接收函數 通過檢測關鍵字:比如 OK / / WIFI CONNECTED 來知道當前ESP是否正常工作;若有異常,則執行異常處理函數(沒有寫) 關鍵字檢測函數 將AT指令使用宏定義這樣方便操
[單片機]
《嵌入式-STM32開發指南》第二部分 基礎篇 - 第6章串口通信(HAL庫)
6.1串口簡介 通用同步異步收發器(USART)提供了一種靈活的方法與使用工業標準NRZ異步串行數據格式的外部設備之間進行全雙工數據交換。USART利用分數波特率發生器提供寬范圍的波特率選擇。它支持同步單向通信和半雙工單線通信,也支持LIN(局部互連網),智能卡協議和IrDA(紅外數據組織)SIR ENDEC規范,以及調制解調器(CTS/RTS)操作。它還允許多處理器通信。使用多緩沖器配置的DMA方式,可以實現高速數據通信。圖一也就我們熟悉的串口通通信標準。 圖1 232通信標準 如圖2所示,串口通過三個引腳與其他設備連接在一起。任何USART雙向通信至少需要兩個腳:接收數據輸入(RX)和發送數據輸出(TX)。 圖2 US
[單片機]
單片機stm32直流電機驅動與測速學習筆記
  通過實驗發現,定時器的一個通道控制一個pwm信號。   在正式開始之前也可以參考這個視頻學習資料   (stm32直流電機驅動)   http://www.makeru.com.cn/live/1392_1218.html?s=45051   超聲波雷達測距儀   http://www.makeru.com.cn/live/15971_2626.html?s=45051   PWM驅動電機不需要中斷。   ① timer.h:   #ifndef __TIMER_H   #define __TIMER_H   #include “sys.h”   void TIM3_PWM_Init(u16 arr,u16 psc);   #
[單片機]
STM32 USART與USB接收不定數據方法,標準庫、HAL庫都適用
很多時候,我們使用串口或USB接收數據時,往往不知道PC端會發多長的數據下來, 為了解決這個不定數據接收問題,在此各提供一個解決思路。 串口數據不定接收: 由于STM32單片機帶IDLE中斷,所以利用這個中斷,可以接收不定長字節的數據, 由于STM32屬于ARM單片機,所以這篇文章的方法也適合其他的ARM單片機。 IDLE就是串口收到一幀數據后,發生的中斷。什么是一幀數據呢?比如說給單片機一 次發來1個字節,或者一次發來8個字節,這些一次發來的數據,就稱為一幀數據,也可以 叫做一包數據。 還有一個RXNE中斷,當接收到1個字節,就會產生RXNE中斷,當接收到一幀數據,就 會產生IDLE中斷。比如給單片機一次性發送8個字
[單片機]
<font color='red'>STM32</font> USART與USB接收不定數據方法,標準庫、HAL庫都適用
ch32和stm32編程有區別嗎?
STM32是一個系列的單片機,其核心中央處理單元(CPU)使用ARM Cortex-M內核。因此,STM32編程過程與Cortex-M芯片的編程過程非常相似。但是,STM32是一種特殊的單片機,不同于其他品牌的單片機。因此,在學習或使用STM32時,需要了解其特殊的編程過程。 相比其他品牌的單片機,STM32的編程更為復雜。這是因為STM32有更多的外設和寄存器,這些寄存器的數量和命名對編程人員的要求更高。此外,STM32的編程需要掌握它的硬件架構,例如存儲器映射表,這些內容相對于其他單片機可能更為復雜。 另外,STM32的編程也需要掌握硬件抽象層(HAL)庫,這是一個提供了大量現成函數的軟件庫。HAL庫是STM32的官方庫,其中
[單片機]
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 西盟| 上林县| 大渡口区| 牡丹江市| 丰镇市| 金堂县| 醴陵市| 南华县| 宁远县| 祁阳县| 彭山县| 金沙县| 咸阳市| 盐池县| 镇平县| 南宫市| 额济纳旗| 宽城| 敦化市| 丰台区| 望江县| 罗山县| 青川县| 贺兰县| 苏州市| 玛沁县| 华亭县| 漳州市| 神池县| 信阳市| 福贡县| 永寿县| 内丘县| 永顺县| 汾西县| 乌苏市| 襄汾县| 集贤县| 安康市| 丹棱县| 深泽县|