日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]簡介寫這篇教程主要是和大家分享使用STM32的基本方法,也是給自己學(xué)習(xí)過程的總結(jié)、記錄和備忘,避免重復(fù)學(xué)習(xí)之前明白但又忘記的知識和操作。我現(xiàn)在也是剛開始接觸學(xué)習(xí)STM32,我是在STM32的固件庫V3基礎(chǔ)上進行學(xué)習(xí)。在

簡介

寫這篇教程主要是和大家分享使用STM32的基本方法,也是給自己學(xué)習(xí)過程的總結(jié)、記錄和備忘,避免重復(fù)學(xué)習(xí)之前明白但又忘記的知識和操作。我現(xiàn)在也是剛開始接觸學(xué)習(xí)STM32,我是在STM32的固件庫V3基礎(chǔ)上進行學(xué)習(xí)。在這里我和大家分享一下使用V3.x庫的方法,希望大家喜歡,如有錯誤請指出。

這篇教程分以下幾個方面,一:建立工程,設(shè)置工程屬性。二:建立條理清晰的GROUP;三:使用JLINK仿真調(diào)試。下面就分別逐個說明。

一、新建MDK工程

1、首先,打開MDK軟件,再點擊Project->New uVision Project…,如下圖所示:

彈出如下對話框:


新建一個文件夾MDK工程,然后把工程名字設(shè)為test,點擊保存。彈出選擇器件的對話框,

我們使用的是stm32單片機,所以選擇STMicroelectronics下面的器件,如STM32F107VCT6,如圖所示:


點擊OK,MDK會彈出一個對話框,如圖所示:問是否加載啟動代碼到當(dāng)前工程下面,


如果選擇是,則這個啟動代碼是舊版本庫的啟動代碼,新版本的啟動代碼和這個不同,需要自己添加。在這里我們使用的是新版本的庫,所以點擊否,自己添加啟動代碼。

啟動代碼是一段和硬件相關(guān)的匯編代碼,是必不可少的!這個代碼具體如何工作,感興趣可以研究一下,現(xiàn)在可以不必關(guān)心它。

2、接下來我們需要對工程進行一些設(shè)置。

在工程區(qū),右鍵點擊Target1,選擇Options for Target‘Target1’ 如圖所示:


彈出如下窗口,選擇Output標簽,設(shè)置目標文件的生成路徑及其他相關(guān)參數(shù)。



如圖點擊Select Folder for Objects 在彈出的窗口中點空白處新建“Obj”文件夾,然后雙擊“Obj” 文件夾,如圖中所示的Path后,點擊OK.

點擊Listing標簽,新建“l(fā)ist”文件夾,設(shè)置鏈接文件的生成路徑,及相關(guān)參數(shù)。如圖所示:


【友情提示:Obj和list這兩個文件夾會保存Keil編譯連接過程中產(chǎn)生的一些文件,雖然是一個不起眼的細節(jié)但是也請大家關(guān)注,不然在工程目錄下面“邋遢”的很,所以強烈建議創(chuàng)建這兩個文件夾!】

點擊Debug標簽,選擇使用的仿真器,我們使用JLINK V8進行仿真調(diào)試,對應(yīng)的,在此選擇Cortex-M/R J-LINK/J-Trace。Cortex-M/R J-LINK/J-Trace前的Use要選中,否則J-LINK調(diào)試會出問題。如圖所示:


點擊右側(cè)的Setting,配置JLINK下載參數(shù),主要是選擇目標處理器系列,添加目標芯片對應(yīng)的燒寫算法。


圖中要勾選Reset and Run 選項,如果Flash Download 算法不對,請點擊Add 重新添加Flash算法。

點擊Utilities,進行公共參數(shù)設(shè)置


至此,我們已經(jīng)完成了一個RVMDK工程參數(shù)設(shè)置。

二、介紹MDK工程的文件管理方面的功能。

我們在使用ST標準的固件庫進行代碼設(shè)計時,一個工程內(nèi)可能會包含很多的庫文件,因此對文件進行管理就非常的必要。

如下圖所示,右鍵點擊Target1,選擇Manage Components,進入分類文件管理設(shè)置。


在彈出的選擇框中,可以設(shè)置工程名,增加、刪減文件夾。以及在某個文件夾內(nèi)添加刪除文件。

在完成以上操作后,一個MDK工程就設(shè)置完成了,只需要依據(jù)實際應(yīng)用要求編寫相關(guān)代碼即可。

【友情提示:Groups下的文件夾不是實際存在的(如果這里的名字跟實際工程中的文件夾同名也不要以為它是真實的,否則不同名時,你在硬盤中是找不到它們的),只是為了工程管理建立的?!?/p>

我個人覺得標準的庫文件“埋”的太深,使用起來有點不方便,所以我一般對這些文件進行一些整理,把相關(guān)文件放在一起,并取上一個標準化的名字,這些文件夾的名字一般和原始固件庫文件夾的名字相同,只是把需要的文件放在一起。一般在工程目錄下面我會建立以下幾個文件夾,如圖所示。當(dāng)然還會建立前面已經(jīng)建立的兩個很有用的文件夾(List和Obj)

自己建立的文件夾和庫文件的對應(yīng)關(guān)系:

StdPeriph_Driver文件夾內(nèi)的內(nèi)容與標準庫保持一致。

STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_Driver

StartUp文件夾內(nèi)的文件在庫中的位置:

STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10xStartUp

CMSIS文件夾內(nèi)的文件在庫中的位置:

STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x

stm32f10x.h,system_stm32f10x.c, system_stm32f10x.h

STM32F10x_StdPeriph_Lib_V3.5.0ibrariesCMSISCM3CoreSupport

core_cm3.c, core_cm3.h



Groups文件夾的名稱和工程文件夾的名稱盡量保持一致,如上圖所示。為每個Group添加同名文件夾下的源文件或者頭文件,為了便于查看代碼,我把源文件和頭文件都添加進Group中(除StdPeriph_Driver),在這里注意過濾文件的類型。StdPeriph_Driver中只添加需要的源文件,例如建立一個LED閃爍的工程,那么這個工程除了進行必要的初始化之外,只需要包含GPIO的操作函數(shù),當(dāng)然需要使用GPIO就必須要使能GPIO的時鐘,RCC是絕對少不了的。所以只需要包含misc.c,stm32f10x_gpio.c和stm32f10x_rcc.c。添加需要的文件之后,工程目錄如圖所示。

現(xiàn)在重新說明一下一個工程建立的文件夾:

MDK工程:內(nèi)有List和Obj兩個文件夾

CMSIS:包含系統(tǒng)的內(nèi)核文件

StartUp:包含各種啟動文件

User:用戶編寫的應(yīng)用文件

StdPeriph_Driver:內(nèi)有src和inc兩個文件夾,是標準庫提供的源文件和頭文件。

當(dāng)然也有人直接將List和Obj兩個文件夾放在User文件夾內(nèi),然后去掉MDK工程文件夾。這樣也是可以的,看個人愛好了。我習(xí)慣將User文件夾獨立出來不放List、Obj和**.uvproj等文件,只放自己編寫的應(yīng)用文件,這樣當(dāng)項目有很多應(yīng)用文件的時候可以在User內(nèi)建立src和inc兩個文件夾存放源文件和頭文件,使文件結(jié)構(gòu)看起來更加清晰。


需要說明的是,雖然在有些Group中包含了一些頭文件,但是Keil在編譯連接的時侯卻不知道頭文件在什么地方,所以一定要指定頭文件的路徑。


【重要】指定的頭文件為:..CMSIS;..StdPeriph_Driverinc;..User

【重要】兩個重要的宏也一定要指定:USE_STDPERIPH_DRIVER,STM32F10X_MD

三、J-LINK仿真調(diào)試。

【強調(diào)】:Debug標簽,使用JLINK V8進行仿真調(diào)試,對應(yīng)的Cortex-M/R J-LINK/J-Trace前的Use要選中,否則J-LINK調(diào)試會出問題。

這部分我就不多說了,在實際硬件平臺上多多練習(xí)吧,祝大家在學(xué)習(xí)過程中不斷提高。

注:此文檔參考了網(wǎng)上的一篇文章和神舟開發(fā)手冊的部分內(nèi)容。


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在嵌入式開發(fā)中,STM32的時鐘系統(tǒng)因其靈活性和復(fù)雜性成為開發(fā)者關(guān)注的焦點。然而,看似簡單的時鐘配置背后,隱藏著諸多易被忽視的陷阱,輕則導(dǎo)致系統(tǒng)不穩(wěn)定,重則引發(fā)硬件損壞。本文從時鐘源選擇、PLL配置、總線時鐘分配等關(guān)鍵環(huán)...

關(guān)鍵字: STM32 時鐘系統(tǒng)

在嵌入式系統(tǒng)開發(fā)中,STM32系列微控制器的內(nèi)部溫度傳感器因其低成本、高集成度特性,廣泛應(yīng)用于設(shè)備自檢、環(huán)境監(jiān)測等場景。然而,受芯片工藝差異和電源噪聲影響,其原始數(shù)據(jù)存在±1.5℃的固有誤差。本文從硬件配置、校準算法、軟...

關(guān)鍵字: STM32 溫度傳感器

在能源效率與智能化需求雙重驅(qū)動下,AC-DC轉(zhuǎn)換器的數(shù)字控制技術(shù)正經(jīng)歷從傳統(tǒng)模擬方案向全數(shù)字架構(gòu)的深刻變革?;赟TM32微控制器的PFM(脈沖頻率調(diào)制)+PWM(脈沖寬度調(diào)制)混合調(diào)制策略,結(jié)合動態(tài)電壓調(diào)整(Dynam...

關(guān)鍵字: AC-DC STM32

當(dāng)前智能家居產(chǎn)品需求不斷增長 ,在這一背景下 ,對現(xiàn)有澆花裝置缺陷進行了改進 ,設(shè)計出基于STM32單片機的全 自動家用澆花機器人。該設(shè)計主要由機械結(jié)構(gòu)和控制系統(tǒng)構(gòu)成 ,機械結(jié)構(gòu)通過麥克納姆輪底盤與噴灑裝置的結(jié)合實現(xiàn)機器...

關(guān)鍵字: STM32 麥克納姆輪 安全可靠 通過性強

用c++編程似乎是讓你的Arduino項目起步的障礙嗎?您想要一種更直觀的微控制器編程方式嗎?那你需要了解一下Visuino!這個圖形化編程平臺將復(fù)雜電子項目的創(chuàng)建變成了拖動和連接塊的簡單任務(wù)。在本文中,我們將帶您完成使...

關(guān)鍵字: Visuino Arduino ESP32 STM32

基于STM32與LoRa技術(shù)的無線傳感網(wǎng)絡(luò)憑借其低功耗、廣覆蓋、抗干擾等特性,成為環(huán)境監(jiān)測、工業(yè)自動化等場景的核心解決方案。然而,如何在復(fù)雜電磁環(huán)境中實現(xiàn)高效休眠調(diào)度與動態(tài)信道優(yōu)化,成為提升網(wǎng)絡(luò)能效與可靠性的關(guān)鍵挑戰(zhàn)。本...

關(guān)鍵字: STM32 LoRa

在實時控制系統(tǒng)、高速通信協(xié)議處理及高精度數(shù)據(jù)采集等對時間敏感的應(yīng)用場景中,中斷響應(yīng)延遲的優(yōu)化直接決定了系統(tǒng)的可靠性與性能上限。STM32系列微控制器憑借其靈活的嵌套向量中斷控制器(NVIC)、多通道直接內(nèi)存訪問(DMA)...

關(guān)鍵字: STM32 DMA

數(shù)字電源技術(shù)向高功率密度、高效率與高動態(tài)響應(yīng)方向加速演進,STM32微控制器憑借其基于DSP庫的算法加速能力與對LLC諧振變換器的精準控制架構(gòu),成為優(yōu)化電源動態(tài)性能的核心平臺。相較于傳統(tǒng)模擬控制或通用型數(shù)字控制器,STM...

關(guān)鍵字: STM32 數(shù)字電源

STM32微控制器憑借其針對電機控制場景的深度優(yōu)化,成為高精度、高可靠性驅(qū)動系統(tǒng)的核心選擇。相較于通用型MCU,STM32在電機控制領(lǐng)域的核心優(yōu)勢集中體現(xiàn)在FOC(磁場定向控制)算法的硬件加速引擎與PWM死區(qū)時間的動態(tài)補...

關(guān)鍵字: STM32 電機控制

無線充電技術(shù)加速滲透消費電子與汽車電子領(lǐng)域,基于Qi協(xié)議的無線充電發(fā)射端開發(fā)成為智能設(shè)備能量補給的核心課題。傳統(tǒng)模擬控制方案存在響應(yīng)滯后、參數(shù)調(diào)整困難等問題,而基于STM32的數(shù)字PID控制結(jié)合FOD(Foreign O...

關(guān)鍵字: STM32 無線充電
關(guān)閉