国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32單片機(jī)(二)STM32環(huán)境搭建

這篇具有很好參考價值的文章主要介紹了STM32單片機(jī)(二)STM32環(huán)境搭建。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

?? 專欄簡介:本專欄記錄了從零學(xué)習(xí)單片機(jī)的過程,其中包括51單片機(jī)和STM32單片機(jī)兩部分;建議先學(xué)習(xí)51單片機(jī),其是STM32等高級單片機(jī)的基礎(chǔ);這樣再學(xué)習(xí)STM32時才能融會貫通。
?? 專欄適用人群 :適用于想要從零基礎(chǔ)開始學(xué)習(xí)入門單片機(jī),且有一定C語言基礎(chǔ)的的童鞋。
??專欄目標(biāo):實現(xiàn)從零基礎(chǔ)入門51單片機(jī)和STM32單片機(jī),力求在玩好單片機(jī)的同時,能夠了解一些計算機(jī)的基本概念,了解電路及其元器件的基本理論等。

?? 專欄主要內(nèi)容: 主要學(xué)習(xí)STM32單片機(jī)的功能、各個模塊、單片機(jī)的外設(shè)、驅(qū)動等,最終玩好單片機(jī)和單片機(jī)的外設(shè),全程手敲代碼,實現(xiàn)我們所要實現(xiàn)的功能。
?? 專欄說明 :如果文章知識點(diǎn)有錯誤的地方,歡迎大家隨時在文章下面評論,我會第一時間改正。讓我們一起學(xué)習(xí),一起進(jìn)步。
??專欄主頁:http://t.csdn.cn/HCD8v

本學(xué)習(xí)過程參考:https://space.bilibili.com/383400717

STM3單片機(jī)安裝軟件、各種資料以及源碼的路徑:
鏈接:https://pan.baidu.com/s/1snD0uuTfMhchFqOMWvAiHA?pwd=asdf#list/path=%2F
提取碼:asdf

鏈接里壓縮包的解壓密碼:32

本節(jié)主要對STM32環(huán)境搭建過程進(jìn)行簡單介紹,其中包括軟件安裝和新建工程兩部分;其中軟件安裝包括安裝Keil5 MDK、安裝器件支持包、軟件注冊、安裝STLINK驅(qū)動、安裝USB轉(zhuǎn)串口驅(qū)動等;新建工程部分包括STM32開發(fā)方式簡介以及新建標(biāo)準(zhǔn)庫工程等。

一、軟件安裝

軟件的下載鏈接:
STM3單片機(jī)安裝軟件、各種資料以及源碼的路徑:
鏈接:https://pan.baidu.com/s/1snD0uuTfMhchFqOMWvAiHA?pwd=asdf#list/path=%2F
提取碼:asdf

鏈接里壓縮包的解壓密碼:32

1.1 安裝Keil5 MDK

解壓 資料/Keil5 MDK.zip,解壓之后,(右鍵管理員權(quán)限打開)MDK524.EXE文件,開始安裝軟件,注意路徑不要有英文,不要選擇帶有特殊權(quán)限的盤;選Next->勾選同意許可協(xié)議->Next->選擇安裝目錄(如果不想放在C盤,也可以在創(chuàng)建英文目錄,記得創(chuàng)建文件夾時起英文名字)->Next->填寫個人信息(隨便填)->Next,等待安裝即可;

安裝過程中會讓選擇是否安裝ULINK驅(qū)動,選擇是就行:
STM32單片機(jī)(二)STM32環(huán)境搭建
可以將Show Release Notes 取消勾選:
STM32單片機(jī)(二)STM32環(huán)境搭建

最后點(diǎn)擊Finish,接下來就會自動彈出一個Pack Installer的窗口,這個窗口就是用來安裝器件支持包的,我們先把它叉掉,后面再講:STM32單片機(jī)(二)STM32環(huán)境搭建

1.2 安裝器件支持包

首先來介紹一下為什么需要要安裝器件支持包,這個支持包是Keil5才需要安裝的,想Keil4和之前的老版本,是不需要安裝的;這是因為現(xiàn)在的ARM芯片型號是非常多的,升級換代速度也快;新型號的芯片也是不斷地推出來,那Keil軟件總不能出一款芯片就升級一下軟件吧,而且同時支持所有型號的芯片,這個占用內(nèi)存也是非常大的,所以Keil5之后,芯片的器件支持包就被獨(dú)立出來了;我們開發(fā)哪種芯片,就安裝對應(yīng)的支持包就行;如果你不安裝支持包,那在新建工程時,是不會出現(xiàn)相應(yīng)的器件型號的;

安裝器件支持包有兩種安裝方式,一種是離線安裝,一種是在線安裝;

1.2.1 離線安裝

首先介紹一下離線安裝:
打開Keil5 MDK的安裝包文件夾,打開支持包文件夾:
STM32單片機(jī)(二)STM32環(huán)境搭建

STM32單片機(jī)(二)STM32環(huán)境搭建

在這里已經(jīng)提前準(zhǔn)備了常見的支持包,我們本課程使用的是STM32F1系列, 我們就需要選擇這個Keil.STM32F1xx_DFP的文件,雙擊打開,這里的目標(biāo)路徑會自動選擇我們安裝時的那個目錄:STM32單片機(jī)(二)STM32環(huán)境搭建

直接點(diǎn)擊Next即可,等待一小會兒即可安裝完成;安裝完成點(diǎn)擊Finish即可。此時再打開Keil5軟件,新建工程:
STM32單片機(jī)(二)STM32環(huán)境搭建
STM32單片機(jī)(二)STM32環(huán)境搭建

STM32單片機(jī)(二)STM32環(huán)境搭建

可以發(fā)現(xiàn)這里就出現(xiàn)了STM32F1的器件列表,展開之后我們可以選擇F103,然后F103C8,這樣就可以新建工程了;

STM32單片機(jī)(二)STM32環(huán)境搭建

到這里,我們離線安裝器件支持包的方式就介紹完了;

1.2.2 在線安裝

在線安裝是離線安裝的擴(kuò)展部分,主要是為了防止以后開發(fā)其他芯片找不到型號;大概了解一下即可;

因為在1.2.1的安裝包里,只提供了部分的器件支持包,所以如果以后想開發(fā)其他芯片,比如STM32F2的系列或者其他公司的ARM芯片,那到時候找不到器件支持包不就尷尬了嘛,,,這個時候就可以用上在線安裝了。

打開keil5軟件,點(diǎn)擊下面的綠色按鈕:
STM32單片機(jī)(二)STM32環(huán)境搭建
彈出來的就是我們之前叉掉的那個Pack Installer界面:

STM32單片機(jī)(二)STM32環(huán)境搭建
那這個就可以用來安裝支持包,并且所有可以用keil軟件來開發(fā)的芯片都可以找到,使用還是非常方便的,就是網(wǎng)速比較慢哈;

注意,在這個頁面一定要聯(lián)網(wǎng);

然后進(jìn)來之后它就會自動在Keil官網(wǎng)上獲取最新的器件列表了;左下角提示的就是正在獲取的東西,右邊有進(jìn)度條顯示進(jìn)度;

STM32單片機(jī)(二)STM32環(huán)境搭建

這個網(wǎng)速還是挺慢的,大家得多等一會兒;

如果你點(diǎn)進(jìn)來沒有自動獲取的話,可以點(diǎn)一下這個更新按鈕,這樣就可以獲取最新列表了:

STM32單片機(jī)(二)STM32環(huán)境搭建

點(diǎn)擊刷新后,經(jīng)過漫長的等待,這個器件列表總算是加載完了哈:

STM32單片機(jī)(二)STM32環(huán)境搭建

可以看到,這里有很多公司的名稱,里面包含了Keil支持的所有ARM芯片,其中這個GigaDevice公司下,就有目前做的還不錯的國產(chǎn)兼容STM32的芯片,叫GD32,里面有這個叫GD32F103C8的型號,基本和STM32F103C8T6的芯片一樣;

STM32單片機(jī)(二)STM32環(huán)境搭建

還有下面這個MindMotion公司,里面也有MM32F103C8T,也是可以兼容STM32F103C8T6的國產(chǎn)芯片:

STM32單片機(jī)(二)STM32環(huán)境搭建

現(xiàn)在STM32漲價比較厲害,所以國產(chǎn)這些芯片也取得了一定的發(fā)展;大家可以了解一下;

接著往下劃,下面這個STMicroelectronics里面就有STM32了,里面包含了現(xiàn)在STM32的所有型號,其中就有我們剛才安裝的STM32F1系列:

STM32單片機(jī)(二)STM32環(huán)境搭建

那比如我們以后想要開發(fā)STM32F2的系列,我們就可以選擇這個STM32F2;因為剛剛在離線安裝中我們已經(jīng)安裝好了STM32F1,所以此次我們是拿STM32F2來演示在線下載:
在右邊找到這個后綴是DFP的文件,然后點(diǎn)擊Install,安裝即可:

STM32單片機(jī)(二)STM32環(huán)境搭建

那接下來,它就會自動在Keil的官網(wǎng)下載DFP文件,然后自動幫我們安裝上;
當(dāng)然也可以用瀏覽器到這個網(wǎng)站上下載,下載之后,就和離線安裝的方式是一樣的了:

STM32單片機(jī)(二)STM32環(huán)境搭建

現(xiàn)在又是需要一段漫長的時間來下載哈,等提示完成后即可叉掉這個窗口了,叉掉后,會出來一個彈窗,如下所示,提示軟件的支持包已經(jīng)更改,是否要重新加載支持包,選擇是就行:

STM32單片機(jī)(二)STM32環(huán)境搭建
然后再新建工程,就可以看到有STM32F2系列的芯片了:

STM32單片機(jī)(二)STM32環(huán)境搭建
STM32單片機(jī)(二)STM32環(huán)境搭建
STM32單片機(jī)(二)STM32環(huán)境搭建
這就是在線安裝的整個過程了,有個印象就行;

1.3 軟件注冊

這個Keil軟件是一個付費(fèi)軟件,如果不注冊的話,功能上會有很大限制的,如果我們個人用戶學(xué)習(xí)的話,使用盜版問題也不大,但是企業(yè)用戶就必須得用正版了。

首先我們先關(guān)閉軟件, 然后再Keil5圖標(biāo)上右鍵,選擇以管理員身份運(yùn)行(這里需要注意,必須是右鍵->以管理員身份運(yùn)行)然后點(diǎn)擊File->LicenseManagement,把這個CID復(fù)制下來:

STM32單片機(jī)(二)STM32環(huán)境搭建

STM32單片機(jī)(二)STM32環(huán)境搭建

然后打開安裝包,將Keygen的壓縮包解壓:

STM32單片機(jī)(二)STM32環(huán)境搭建
打開解壓后的文件夾,可以看到這個注冊機(jī)(如果解壓后看不到該文件,可能是被殺毒軟件殺掉了,那就需要將殺毒軟件關(guān)掉再重新解壓),雙擊打開:

STM32單片機(jī)(二)STM32環(huán)境搭建
然后將剛剛復(fù)制的CID碼復(fù)制進(jìn)來,右邊的Target選擇ARM,點(diǎn)擊Generate,
STM32單片機(jī)(二)STM32環(huán)境搭建
最后將生成的序列碼復(fù)制下來,就可以退出這個軟件了,

STM32單片機(jī)(二)STM32環(huán)境搭建
最后回到Keil5軟件,將剛剛生成的序列碼粘貼到LIC位置,點(diǎn)擊Add LIC即可,如下圖所示:
STM32單片機(jī)(二)STM32環(huán)境搭建
提示LIC添加成功,并且上面的MDK-ARM這一行的使用期限顯示2032年,就表示軟件注冊完成了。

STM32單片機(jī)(二)STM32環(huán)境搭建

1.4 安裝STLINK驅(qū)動

首先,我們需要將STLINK插到電腦上,

STM32單片機(jī)(二)STM32環(huán)境搭建

然后在 此電腦->右鍵->設(shè)備管理器,打開設(shè)備管理器的窗口,在其他設(shè)備里面可以看到這個STLINK是在其他設(shè)備的列表上,并且圖標(biāo)帶了個感嘆號,說明我們的電腦上目前是沒有安裝STLINK驅(qū)動的; 如下圖所示

STM32單片機(jī)(二)STM32環(huán)境搭建
如果插上STLINK,在這個列表里找一下,能找到STLINK的設(shè)備且沒有感嘆號,那說明你的電腦已經(jīng)裝過STLINK的驅(qū)動了,就不需要進(jìn)行這一步了。

如果沒有安裝STLINK驅(qū)動,我們則需要安裝一下:

這個驅(qū)動程序Keil軟件自帶的就有,我們可以打開Keil5的安裝目錄,在ARM->STLink->USBDriver里面,找到amd64.exe就是64位的,X86是32位的:

STM32單片機(jī)(二)STM32環(huán)境搭建

我的電腦是64位的,那么雙擊這個64,然后一直Next即可。安裝完成后,可以發(fā)現(xiàn)沒有感嘆號了:
STM32單片機(jī)(二)STM32環(huán)境搭建

另外這個目錄下,還有JLINK的驅(qū)動,JLINK也是一種常用的調(diào)試器,如果你想安裝JLINK驅(qū)動的話可以打開這里的Segger文件夾,

STM32單片機(jī)(二)STM32環(huán)境搭建
這里面就可以安裝JLINK的驅(qū)動了。

1.5 安裝USB轉(zhuǎn)串口驅(qū)動

STM32單片機(jī)(二)STM32環(huán)境搭建

同樣我們先把USB串口模塊插在電腦上,這個USB轉(zhuǎn)串口的芯片是CH340,和之前51開發(fā)板上的一樣,如果之前學(xué)過51,那么大概率已經(jīng)裝過該驅(qū)動了。

STM32單片機(jī)(二)STM32環(huán)境搭建
如果這里有感嘆號,就需要裝一下驅(qū)動,如果能正常識別,就不需要裝了。

CH340的驅(qū)動在資料文件夾里,打開工具軟件,打開USB轉(zhuǎn)串口CH340驅(qū)動,雙擊以下EXE程序:

STM32單片機(jī)(二)STM32環(huán)境搭建
STM32單片機(jī)(二)STM32環(huán)境搭建
點(diǎn)擊安裝

STM32單片機(jī)(二)STM32環(huán)境搭建

出現(xiàn)驅(qū)動安裝成功就ok了;

STM32單片機(jī)(二)STM32環(huán)境搭建
設(shè)備管理器里感嘆號也消失了。

二、新建工程

本小節(jié)我們來建立一個STM32的工程,STM32的工程結(jié)構(gòu)還是比較復(fù)雜的,需要用到很多文件,之后我們的代碼也都是需要建立在工程結(jié)構(gòu)上的,所以在開始學(xué)習(xí)后續(xù)內(nèi)容之前,我們先來學(xué)習(xí)以下如何新建STM32的工程;

2.1 STM32開發(fā)方式簡介

目前STM32的開發(fā)方式主要有基于寄存器的方式、基于標(biāo)準(zhǔn)庫也就是庫函數(shù)的方式基于HAL庫的方式;

  • 基于寄存器的方式和我們51單片機(jī)的開發(fā)方式一樣,是用程序直接配置寄存器,來達(dá)到我們想要的功能;這種方式最底層、最直接、效率會更高一些;但是由于STM32的結(jié)構(gòu)復(fù)雜、寄存器太多,所以基于寄存器的方式目前是不推薦的;
  • 基于庫函數(shù)的方式是使用ST官方提供的封裝好的函數(shù),通過調(diào)用這些函數(shù)來間接的配置寄存器,由于ST對寄存器封裝的比較好,所以這種方式既能滿足對寄存器的配置,對開發(fā)人員也比較友好,有利于提高開發(fā)效率,我們本課程使用的就是庫函數(shù)的開發(fā)方式;
  • 最后一個基于HAL庫的方式可以利用圖像化界面快速配置STM32,這個比較適合快速上手STM32的情況,但是這種方式隱藏了底層邏輯,如果你對STM32不熟悉,基本只能停留在很淺的水平,所以目前不推薦HAL庫。

既然我們要使用庫函數(shù)的方式,我們需要準(zhǔn)備一個STM32庫函數(shù)的壓縮包,大家可以在百度云鏈接提供的資料里找到固件庫的文件,如下圖所示:

STM32單片機(jī)(二)STM32環(huán)境搭建

可以看到STM32F10x標(biāo)準(zhǔn)外設(shè)庫的這個壓縮包,解壓后就可以看到庫函數(shù)的文件夾目錄了,

STM32單片機(jī)(二)STM32環(huán)境搭建

  • _htmresc文件夾里放的是圖片,沒啥用
  • Libraries文件夾里放的是庫函數(shù)的文件了,我們之后建工程時會用到
  • Project時官方提供的工程示例和模板,以后使用庫函數(shù)的時候可以參考一下;
  • Utilities是STM32官方評估板的相關(guān)例程,這個評估板就是官方用STM32做的一個小電路板,用來測評STM32的;這個文件夾里面存的就是這個小電路板的測評程序;
  • 接下來后面的兩個文件,一個是庫函數(shù)的發(fā)布文檔,一個是使用手冊;發(fā)布文檔里有一些版本的說明,使用手冊里有教怎么使用這些庫函數(shù)的;

2.2 新建標(biāo)準(zhǔn)庫工程

2.2.1 新建工程

接下來我們就正式開始新建一個基于標(biāo)準(zhǔn)庫的工程,首先我們需要建立一個存放工程的文件夾,為了方便,我就在桌面新建該文件夾了,起個名字叫STM32Project,以后我們的工程都存在這個文件夾下,這樣比較方便管理;

接著打開Keil5軟件,點(diǎn)擊Project->New uVision Project
STM32單片機(jī)(二)STM32環(huán)境搭建

然后選擇我們剛才新建的文件夾(桌面上的STM32Project),在里面再新建一個文件夾,用來存放本次的工程,如下圖:

STM32單片機(jī)(二)STM32環(huán)境搭建

起個名字,就叫2-1 STM32工程模板,

STM32單片機(jī)(二)STM32環(huán)境搭建
然后點(diǎn)進(jìn)去,接下來給工程文件起個名字,在這里我們可以起一個通用一點(diǎn)的名字,這個工程是干啥的我們可以在文件夾名稱說明,文件夾的名稱是方便改的,但是工程的名稱以后不太方便改,所以我們就起個Project的名稱,然后點(diǎn)擊保存:

STM32單片機(jī)(二)STM32環(huán)境搭建

接下來選擇器件型號,我們的芯片型號是STM32F103C8T6,所以這里選擇STM32F103C8這個,

STM32單片機(jī)(二)STM32環(huán)境搭建
點(diǎn)擊ok后,會彈出keil軟件的一個新建工程小助手,這個小助手可以幫助我們快速新建工程,我們暫時不用這個小助手,可以直接把它叉掉:

STM32單片機(jī)(二)STM32環(huán)境搭建

接下來工程就已經(jīng)建好了,但是這里的工程文件是空空如也,

STM32單片機(jī)(二)STM32環(huán)境搭建

2.2.2 添加啟動文件

2.2.2.1 添加啟動文件

現(xiàn)在這個工程還是不能直接用的,我們需要給他添加一個工程的必要文件,那我們打開我們的固件庫文件夾,路徑如下圖:

STM32單片機(jī)(二)STM32環(huán)境搭建
打開Libraries->CMSIS->CM3->DeviceSupport->ST->STM32F10x->startup->arm

STM32單片機(jī)(二)STM32環(huán)境搭建
這些就是STM32的啟動文件,STM32的程序就是從啟動文件開始執(zhí)行的;我們把這些文件復(fù)制下來,然后回到工程模板文件夾里,可以看到我們剛剛新建工程后自動生成的文件:

STM32單片機(jī)(二)STM32環(huán)境搭建

在這里新建一個文件夾Start用來存放啟動文件,將剛剛復(fù)制的啟動文件復(fù)制到Start文件夾里:

STM32單片機(jī)(二)STM32環(huán)境搭建

2.2.2.2 添加寄存器描述文件

然后將資料庫里的以下三個文件也復(fù)制到Start里面:

STM32單片機(jī)(二)STM32環(huán)境搭建

其中stm32f10x.h是STM32的外設(shè)寄存器描述文件,作用類似于51單片機(jī)的頭文件REGX52.H,是用來描述STM32有哪些寄存器和它對應(yīng)的地址的;

下面的兩個system文件是用來配置時鐘的, STM32主頻是72MHz,就是system文件里的函數(shù)配置的;

這三個文件也都復(fù)制到Start下面;

2.2.2.3 添加內(nèi)核寄存器描述文件

STM32單片機(jī)(二)STM32環(huán)境搭建
打開以上路徑,將兩個core文件復(fù)制到Start文件夾下;

這兩個cm3(Cortex-M3)文件就是內(nèi)核的寄存器描述;當(dāng)然他還帶了一些內(nèi)核的配置函數(shù),所以多了個.c文件。

到此為止,我們工程的必要文件就復(fù)制完成了,最終Start文件夾下包含的所有文件如下所示:STM32單片機(jī)(二)STM32環(huán)境搭建

2.2.2.4 以上文件添加到工程

再回到keil軟件,把我們剛剛復(fù)制的那些文件添加到工程里來,先選中Source Group 1,然后單擊一下,把這個組改一下名字,也叫Start

STM32單片機(jī)(二)STM32環(huán)境搭建
然后右鍵,選擇添加已經(jīng)存在的文件夾到組里來

STM32單片機(jī)(二)STM32環(huán)境搭建
打開Start文件夾把下面這個文件過濾器選擇All files,

STM32單片機(jī)(二)STM32環(huán)境搭建
然后將startup_stm32f10x_md.s、以及所有的.c.h文件都添加進(jìn)來(至于為什么這么多啟動文件單單只添加md.s,這個后面再講),選好后,點(diǎn)擊Add;然后Start文件夾里面的文件就添加好了,如下圖所示:

STM32單片機(jī)(二)STM32環(huán)境搭建
這里的文件都是STM32里最基本的文件,是不需要我們修改的,我們添加進(jìn)來即可。且我們可以看到這些文件圖標(biāo)上帶了個小鑰匙,表示他們是只讀的文件;

STM32單片機(jī)(二)STM32環(huán)境搭建

2.2.2.5 在工程中添加頭文件路徑

最后我們還需要在工程選項里添加上這個文件夾的頭文件路徑,否則軟件是找不到.h文件的;

STM32單片機(jī)(二)STM32環(huán)境搭建

點(diǎn)擊魔術(shù)棒按鈕,打開工程選項,在C/C++里,找到Include Paths欄,然后點(diǎn)擊右邊三個點(diǎn)的按鈕,

STM32單片機(jī)(二)STM32環(huán)境搭建

在這里點(diǎn)新建路徑,

STM32單片機(jī)(二)STM32環(huán)境搭建

然后再點(diǎn)三個點(diǎn)的路徑,把Start的路徑添加進(jìn)來:

STM32單片機(jī)(二)STM32環(huán)境搭建
STM32單片機(jī)(二)STM32環(huán)境搭建

點(diǎn)擊OK,這樣就把這個文件夾的頭文件路徑添加進(jìn)來了;

STM32單片機(jī)(二)STM32環(huán)境搭建

2.2.3 新工程測試

接下來我們新建一個main函數(shù)測試一下這個工程是否可行;

打開工程文件夾,新建一個User文件夾:

STM32單片機(jī)(二)STM32環(huán)境搭建

我們的main函數(shù)就放在這個文件夾里,然后再keil里,在Target 1這里點(diǎn)擊右鍵,點(diǎn)擊添加組:

STM32單片機(jī)(二)STM32環(huán)境搭建
STM32單片機(jī)(二)STM32環(huán)境搭建
然后將名字改為User:

STM32單片機(jī)(二)STM32環(huán)境搭建

然后再User上右鍵,點(diǎn)擊添加新文件,

STM32單片機(jī)(二)STM32環(huán)境搭建
選擇C文件,名字叫main:

STM32單片機(jī)(二)STM32環(huán)境搭建
下面的路徑注意一下,要選擇User文件夾,要不然默認(rèn)是放在文件夾外面的:

STM32單片機(jī)(二)STM32環(huán)境搭建
然后點(diǎn)擊Add,這樣我們就有了main.c文件了:

STM32單片機(jī)(二)STM32環(huán)境搭建
在main.c里,我們先右鍵插入頭文件,選擇stm32f10x.h

STM32單片機(jī)(二)STM32環(huán)境搭建

然后寫一個main函數(shù),并寫入測試代碼,然后點(diǎn)擊build:

STM32單片機(jī)(二)STM32環(huán)境搭建

可以看到結(jié)果為編譯通過,0警告0錯誤,則證明工程建立成功了:

STM32單片機(jī)(二)STM32環(huán)境搭建

這里需要注意,文件的最后一行必須要空一行,否則會報警告。

這個工程目前還沒有添加STM32的庫函數(shù),所以它還是一個基于寄存器開發(fā)的工程,如果你想用寄存器開發(fā)STM32,那工程建到這里就可以了。

2.2.4 配置寄存器實現(xiàn)點(diǎn)燈

下面演示一下通過配置寄存器來完成點(diǎn)燈操作,當(dāng)然直接操作寄存器不是本節(jié)的重點(diǎn),了解一下即可。

首先拿出STM32的最小系統(tǒng)板、STLINK和四根母對母的杜邦線, 按照插針邊上的標(biāo)識,把3.3V、SWDIO、SWCLK、GND對應(yīng)連接好:

STM32單片機(jī)(二)STM32環(huán)境搭建
你的接口也有可能是以下這樣:

SWCLK<---->SWCLK
SWDIO<---->SWO
GND<---->GND
3.3V<---->3.3V

連接好之后如下圖所示:

STM32單片機(jī)(二)STM32環(huán)境搭建

然后把STLINK插在電腦上

STM32單片機(jī)(二)STM32環(huán)境搭建

插上電之后,板子上的電源燈應(yīng)該會常亮,另一個諒解在PC13口上的燈默認(rèn)應(yīng)該是閃爍狀態(tài),這是芯片里的一個測試程序;

然后我們再在Keil里面配置一下調(diào)試器:點(diǎn)擊魔術(shù)棒按鈕->選擇DEBUG->,這個調(diào)試器默認(rèn)是ULINK,改成ST-Link Debugger

STM32單片機(jī)(二)STM32環(huán)境搭建
然后再點(diǎn)擊上圖3旁邊的Settings按鈕,在Flash Download里,把Reset and Run這一項勾上:

STM32單片機(jī)(二)STM32環(huán)境搭建
勾上這一項的目的是,我們下載程序后會立馬復(fù)位并執(zhí)行,這樣方便一些;否則每次下載之后還要按一下板子上的復(fù)位按鍵才能執(zhí)行程序;配置好之后點(diǎn)擊確認(rèn)即可。

然后將以下代碼寫進(jìn)main.c里:

STM32單片機(jī)(二)STM32環(huán)境搭建
然后編譯并下載,

STM32單片機(jī)(二)STM32環(huán)境搭建

現(xiàn)象是燈就會滅:

STM32單片機(jī)(二)STM32環(huán)境搭建

如果將代碼改為以下:

STM32單片機(jī)(二)STM32環(huán)境搭建

燈就會被亮:
STM32單片機(jī)(二)STM32環(huán)境搭建

這就是通過寄存器控制LED燈,通過寄存器配置LED燈要一直查手冊,來了解每一個寄存器的每一位是干啥的, 才能成功點(diǎn)亮。

2.2.5 使用庫函數(shù)實現(xiàn)點(diǎn)燈

新建一個文件夾叫Library,用來存放庫函數(shù),

STM32單片機(jī)(二)STM32環(huán)境搭建
接著打開固件庫的文件夾,打開Libraries->STM32標(biāo)準(zhǔn)外設(shè)驅(qū)動->src:如下圖
STM32單片機(jī)(二)STM32環(huán)境搭建

這些就是庫函數(shù)的源文件,這個misc.c是內(nèi)核的庫函數(shù),其他的就是內(nèi)核外的外設(shè)庫函數(shù)了;這個misc就是混雜的意思;按ctrl+A全選,然后復(fù)制,在Library下粘貼,如下圖所示:

STM32單片機(jī)(二)STM32環(huán)境搭建
然后再打開固件庫的inc文件夾:

STM32單片機(jī)(二)STM32環(huán)境搭建
這些是庫函數(shù)的頭文件,繼續(xù)全選并復(fù)制,同樣在Library文件夾下粘貼:

STM32單片機(jī)(二)STM32環(huán)境搭建
然后回到Keil軟件,同樣在Target1處右鍵,添加組,

STM32單片機(jī)(二)STM32環(huán)境搭建
改個名字叫Library:

STM32單片機(jī)(二)STM32環(huán)境搭建

再右鍵,添加已經(jīng)存在的文件,打開Library,ctrl+A,Add:
STM32單片機(jī)(二)STM32環(huán)境搭建

STM32單片機(jī)(二)STM32環(huán)境搭建
這樣就把所有的庫函數(shù)文件都添加進(jìn)來了;但是對于這個庫函數(shù)來說,現(xiàn)在還不能直接使用,需要再添加一個文件:打開固件庫的文件夾(路徑為固件庫\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template),找到如下三個文件:

STM32單片機(jī)(二)STM32環(huán)境搭建
其中stm32f10x_conf.h是用來配置庫函數(shù)頭文件的包含關(guān)系的,另外這里面還有個用來參數(shù)檢查的函數(shù)定義,這是所有庫函數(shù)都需要的;兩個it結(jié)尾的文件是用來存放中斷函數(shù)的;

把這三個文件復(fù)制下來,粘貼進(jìn)工程的User目錄下:

STM32單片機(jī)(二)STM32環(huán)境搭建
接著回到Keil軟件, 在User組里,把剛發(fā)財那三個文件添加進(jìn)來:
STM32單片機(jī)(二)STM32環(huán)境搭建
STM32單片機(jī)(二)STM32環(huán)境搭建

因為在頭文件中定義了如下代碼:

STM32單片機(jī)(二)STM32環(huán)境搭建
所以我們需要對USE_STDPERIPH_DRIVER宏進(jìn)行定義,才能包含到stm32f10x_conf.h頭文件:

添加該宏的步驟如下:

STM32單片機(jī)(二)STM32環(huán)境搭建
這樣我們基于庫函數(shù)的工程就建好了;我們可以看一下,這個Library里面的庫函數(shù)也都帶了鑰匙,說明只讀;

STM32單片機(jī)(二)STM32環(huán)境搭建
此時編譯一下,結(jié)果如下:

STM32單片機(jī)(二)STM32環(huán)境搭建
0錯誤0警告,所以我們的工程建立是成功的。

然后我們用庫函數(shù)實現(xiàn)點(diǎn)燈的操作,代碼如下:

#include "stm32f10x.h"                  // Device header

int main(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOC, &GPIO_InitStructure);
//	GPIO_SetBits(GPIOC, GPIO_Pin_13);
	GPIO_ResetBits(GPIOC, GPIO_Pin_13);
	while (1)
	{
		
	}
}

代碼解釋:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);表示配置GPIOC的外設(shè)時鐘;

GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);

先定義一個GPIO_InitTypeDef 結(jié)構(gòu)體,然后對其進(jìn)行賦值,最后調(diào)用GPIO_Init函數(shù),來配置GPIO模式;

最后設(shè)置端口的高低電平來進(jìn)行點(diǎn)燈:
GPIP_SetBIts這個函數(shù)可以把指定端口設(shè)置為高電平,GPIO_SetBits(GPIOC, GPIO_Pin_13)代碼的意思是將PC13號口設(shè)置為高電平;

GPIO_ResetBits這個函數(shù)可以將指定端口設(shè)置為低電平,GPIO_ResetBits(GPIOC, GPIO_Pin_13);代碼的意思是將PC13號口設(shè)置為低電平;

以上代碼的現(xiàn)象(注釋掉了PC13號口的低電平,使用的是低電平),所以燈會亮:

STM32單片機(jī)(二)STM32環(huán)境搭建

2.2.6 補(bǔ)充:庫函數(shù)中的啟動文件選擇

在第2.2.2.4 節(jié)中,添加啟動文件時,我們選擇了md.s結(jié)尾的啟動文件,
STM32單片機(jī)(二)STM32環(huán)境搭建

為什么選擇這個而不選擇添加其他的呢?

先看一下下面的表:

STM32單片機(jī)(二)STM32環(huán)境搭建
我們使用的STM32F103系列C8T6,其Flash大小是64K,按照表中的對應(yīng)關(guān)系,需要選擇MD的啟動文件。

2.2.7 總結(jié):新建工程的步驟

STM32單片機(jī)(二)STM32環(huán)境搭建
工程架構(gòu):

STM32單片機(jī)(二)STM32環(huán)境搭建文章來源地址http://www.zghlxwxcb.cn/news/detail-498251.html

到了這里,關(guān)于STM32單片機(jī)(二)STM32環(huán)境搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • HT32合泰單片機(jī)開發(fā)環(huán)境搭建和配置教程

    HT32合泰單片機(jī)開發(fā)環(huán)境搭建和配置教程

    HT32合泰(Holtek)單片機(jī)開發(fā)環(huán)境搭建安裝教程 最近在準(zhǔn)備合泰杯的比賽,在看合泰官方的PPT和數(shù)據(jù)手冊學(xué)習(xí),順便做個合泰單片機(jī)的開發(fā)環(huán)境搭建教程。 合泰杯比賽發(fā)放的開發(fā)板是ESK32-30501,用的單片機(jī)是HT32F52352。 合泰杯官網(wǎng)地址:https://url.zeruns.tech/S7xu8 合泰官方HT32F52352授課

    2024年02月02日
    瀏覽(26)
  • 一、靈動mm32單片機(jī)_開發(fā)環(huán)境的搭建(Keil)

    一、靈動mm32單片機(jī)_開發(fā)環(huán)境的搭建(Keil)

    略。 (1)這里以MM32F0130單片機(jī)為例。 (2)進(jìn)入靈動微電子官網(wǎng)。上海靈動微電子股份有限公司 (3)點(diǎn)擊“支持”→“KEILPacl”。 (3)點(diǎn)擊下載Pack包。 (4)下載后,解壓下載的壓縮包,找到對應(yīng)的Pack包,雙擊安裝即可。 (1)點(diǎn)擊“支持”→“評估開發(fā)板”。 (2)選擇對應(yīng)的開發(fā)板。 (3)點(diǎn)

    2024年02月08日
    瀏覽(25)
  • STM32單片機(jī)廚房環(huán)境油煙溫濕度調(diào)節(jié)系統(tǒng)加濕加熱排風(fēng)
  • 基于STM32單片機(jī)的智能家居環(huán)境監(jiān)測與控制系統(tǒng)設(shè)計

    基于STM32單片機(jī)的智能家居環(huán)境監(jiān)測與控制系統(tǒng)設(shè)計 摘要 :隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,智能家居環(huán)境監(jiān)測與控制系統(tǒng)的應(yīng)用越來越廣泛。本文設(shè)計了一種基于STM32單片機(jī)的智能家居環(huán)境監(jiān)測與控制系統(tǒng),該系統(tǒng)能夠?qū)崟r監(jiān)測環(huán)境中的溫濕度和天然氣濃度,并將數(shù)據(jù)顯示在

    2024年04月25日
    瀏覽(97)
  • 畢業(yè)設(shè)計 STM32單片機(jī)的智能家居環(huán)境監(jiān)測控制系統(tǒng)

    畢業(yè)設(shè)計 STM32單片機(jī)的智能家居環(huán)境監(jiān)測控制系統(tǒng)

    ?? 這兩年開始畢業(yè)設(shè)計和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點(diǎn),往往達(dá)不到畢業(yè)答辯的要求,這兩年不斷有學(xué)弟學(xué)妹告訴學(xué)長自己做的項目系統(tǒng)達(dá)不到老師的要求。 為了大家能夠順利以及最少的精力通過畢設(shè),學(xué)長分享優(yōu)質(zhì)畢業(yè)設(shè)計項目,今天

    2024年02月10日
    瀏覽(227)
  • 單片機(jī)畢業(yè)設(shè)計 STM32智能空氣質(zhì)量檢測儀 - 環(huán)境檢測盒子 嵌入式 物聯(lián)網(wǎng)

    單片機(jī)畢業(yè)設(shè)計 STM32智能空氣質(zhì)量檢測儀 - 環(huán)境檢測盒子 嵌入式 物聯(lián)網(wǎng)

    Hi,大家好,學(xué)長今天向大家介紹一個 單片機(jī)項目 基于STM32的空氣質(zhì)量檢測儀 大家可用于 課程設(shè)計 或 畢業(yè)設(shè)計 如今人們大約 80%的時間是在室內(nèi)度過的, 室內(nèi)空氣質(zhì)量與我們每個人的工作和生活都息息相關(guān), 因此對生活環(huán)境的空氣質(zhì)量提出了更高的要求。 針對霧霾、 室內(nèi)

    2024年02月10日
    瀏覽(25)
  • 單片機(jī)設(shè)計_室內(nèi)環(huán)境智能監(jiān)測系統(tǒng)(STM32 OLED ESP8266 DHT11 MQ-2 加濕器)

    單片機(jī)設(shè)計_室內(nèi)環(huán)境智能監(jiān)測系統(tǒng)(STM32 OLED ESP8266 DHT11 MQ-2 加濕器)

    想要更多項目私wo!!! 室內(nèi)環(huán)境智能監(jiān)測系統(tǒng) 主要功能: ????????1.檢測空氣溫濕度 ????????2.檢測光照強(qiáng)度 ????????3.檢測煙霧濃度 ????????4.數(shù)據(jù)顯示在手機(jī)端和設(shè)備OLED屏幕上 ????????5.當(dāng)空氣溫度高于設(shè)定的閾值時,風(fēng)扇開啟 ????????6.當(dāng)空氣濕度低于

    2024年02月09日
    瀏覽(34)
  • GD32單片機(jī)和STM32單片機(jī)的對比分析

    GD32單片機(jī)和STM32單片機(jī)都是基于Arm Cortex-M3/M4內(nèi)核的32位通用微控制器,廣泛應(yīng)用于各種嵌入式系統(tǒng)和物聯(lián)網(wǎng)領(lǐng)域。兩者之間有很多相似之處,但也有一些不同之處,本文將從以下幾個方面對比分析兩者的特點(diǎn)、優(yōu)勢和開發(fā)成本。 GD32單片機(jī)采用的是二代的M3/M4內(nèi)核,而STM32單片

    2024年02月16日
    瀏覽(27)
  • STM32單片機(jī)(一)STM32簡介

    STM32單片機(jī)(一)STM32簡介

    ?? 專欄簡介:本專欄記錄了從零學(xué)習(xí)單片機(jī)的過程,其中包括51單片機(jī)和STM32單片機(jī)兩部分;建議先學(xué)習(xí)51單片機(jī),其是STM32等高級單片機(jī)的基礎(chǔ);這樣再學(xué)習(xí)STM32時才能融會貫通。 ?? 專欄適用人群 :適用于想要從零基礎(chǔ)開始學(xué)習(xí)入門單片機(jī),且有一定C語言基礎(chǔ)的的童鞋

    2024年02月10日
    瀏覽(28)
  • STM32單片機(jī)開發(fā)-01 STM32介紹

    STM32單片機(jī)開發(fā)-01 STM32介紹

    通過野火開發(fā)板學(xué)習(xí)單片機(jī) 從內(nèi)核上分有Cortex-M0、M3、M4 和M7 F1 代表了基礎(chǔ)型,基于Cortex-M3 內(nèi)核,主頻為72MHZ F4 代表了高性能,基于Cortex-M4 內(nèi)核,主頻180M。 數(shù)據(jù)手冊:用于芯片選型和設(shè)計原理圖 參考手冊:用于編程時查閱 Icode總線 – 該總線講M3內(nèi)核的指令總線與閃存指令

    2024年01月21日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包