?? 專欄簡介:本專欄記錄了從零學(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ū)動,選擇是就行:
可以將Show Release Notes 取消勾選:
最后點(diǎn)擊Finish,接下來就會自動彈出一個Pack Installer的窗口,這個窗口就是用來安裝器件支持包的,我們先把它叉掉,后面再講:
1.2 安裝器件支持包
首先來介紹一下為什么需要要安裝器件支持包,這個支持包是Keil5才需要安裝的,想Keil4和之前的老版本,是不需要安裝的;這是因為現(xiàn)在的ARM芯片型號是非常多的,升級換代速度也快;新型號的芯片也是不斷地推出來,那Keil軟件總不能出一款芯片就升級一下軟件吧,而且同時支持所有型號的芯片,這個占用內(nèi)存也是非常大的,所以Keil5之后,芯片的器件支持包就被獨(dú)立出來了;我們開發(fā)哪種芯片,就安裝對應(yīng)的支持包就行;如果你不安裝支持包,那在新建工程時,是不會出現(xiàn)相應(yīng)的器件型號的;
安裝器件支持包有兩種安裝方式,一種是離線安裝,一種是在線安裝;
1.2.1 離線安裝
首先介紹一下離線安裝:
打開Keil5 MDK的安裝包文件夾,打開支持包文件夾:
在這里已經(jīng)提前準(zhǔn)備了常見的支持包,我們本課程使用的是STM32F1系列, 我們就需要選擇這個Keil.STM32F1xx_DFP
的文件,雙擊打開,這里的目標(biāo)路徑會自動選擇我們安裝時的那個目錄:
直接點(diǎn)擊Next即可,等待一小會兒即可安裝完成;安裝完成點(diǎn)擊Finish即可。此時再打開Keil5軟件,新建工程:
可以發(fā)現(xiàn)這里就出現(xiàn)了STM32F1的器件列表,展開之后我們可以選擇F103,然后F103C8,這樣就可以新建工程了;
到這里,我們離線安裝器件支持包的方式就介紹完了;
1.2.2 在線安裝
在線安裝是離線安裝的擴(kuò)展部分,主要是為了防止以后開發(fā)其他芯片找不到型號;大概了解一下即可;
因為在1.2.1的安裝包里,只提供了部分的器件支持包,所以如果以后想開發(fā)其他芯片,比如STM32F2的系列或者其他公司的ARM芯片,那到時候找不到器件支持包不就尷尬了嘛,,,這個時候就可以用上在線安裝了。
打開keil5軟件,點(diǎn)擊下面的綠色按鈕:
彈出來的就是我們之前叉掉的那個Pack Installer界面:
那這個就可以用來安裝支持包,并且所有可以用keil軟件來開發(fā)的芯片都可以找到,使用還是非常方便的,就是網(wǎng)速比較慢哈;
注意,在這個頁面一定要聯(lián)網(wǎng);
然后進(jìn)來之后它就會自動在Keil官網(wǎng)上獲取最新的器件列表了;左下角提示的就是正在獲取的東西,右邊有進(jìn)度條顯示進(jìn)度;
這個網(wǎng)速還是挺慢的,大家得多等一會兒;
如果你點(diǎn)進(jìn)來沒有自動獲取的話,可以點(diǎn)一下這個更新按鈕,這樣就可以獲取最新列表了:
點(diǎn)擊刷新后,經(jīng)過漫長的等待,這個器件列表總算是加載完了哈:
可以看到,這里有很多公司的名稱,里面包含了Keil支持的所有ARM芯片,其中這個GigaDevice公司下,就有目前做的還不錯的國產(chǎn)兼容STM32的芯片,叫GD32,里面有這個叫GD32F103C8的型號,基本和STM32F103C8T6的芯片一樣;
還有下面這個MindMotion公司,里面也有MM32F103C8T,也是可以兼容STM32F103C8T6的國產(chǎn)芯片:
現(xiàn)在STM32漲價比較厲害,所以國產(chǎn)這些芯片也取得了一定的發(fā)展;大家可以了解一下;
接著往下劃,下面這個STMicroelectronics里面就有STM32了,里面包含了現(xiàn)在STM32的所有型號,其中就有我們剛才安裝的STM32F1系列:
那比如我們以后想要開發(fā)STM32F2的系列,我們就可以選擇這個STM32F2;因為剛剛在離線安裝中我們已經(jīng)安裝好了STM32F1,所以此次我們是拿STM32F2來演示在線下載:
在右邊找到這個后綴是DFP的文件,然后點(diǎn)擊Install,安裝即可:
那接下來,它就會自動在Keil的官網(wǎng)下載DFP文件,然后自動幫我們安裝上;
當(dāng)然也可以用瀏覽器到這個網(wǎng)站上下載,下載之后,就和離線安裝的方式是一樣的了:
現(xiàn)在又是需要一段漫長的時間來下載哈,等提示完成后即可叉掉這個窗口了,叉掉后,會出來一個彈窗,如下所示,提示軟件的支持包已經(jīng)更改,是否要重新加載支持包,選擇是就行:
然后再新建工程,就可以看到有STM32F2系列的芯片了:
這就是在線安裝的整個過程了,有個印象就行;
1.3 軟件注冊
這個Keil軟件是一個付費(fèi)軟件,如果不注冊的話,功能上會有很大限制的,如果我們個人用戶學(xué)習(xí)的話,使用盜版問題也不大,但是企業(yè)用戶就必須得用正版了。
首先我們先關(guān)閉軟件, 然后再Keil5圖標(biāo)上右鍵,選擇以管理員身份運(yùn)行(這里需要注意,必須是右鍵->以管理員身份運(yùn)行)然后點(diǎn)擊File->LicenseManagement
,把這個CID復(fù)制下來:
然后打開安裝包,將Keygen的壓縮包解壓:
打開解壓后的文件夾,可以看到這個注冊機(jī)(如果解壓后看不到該文件,可能是被殺毒軟件殺掉了,那就需要將殺毒軟件關(guān)掉再重新解壓),雙擊打開:
然后將剛剛復(fù)制的CID碼復(fù)制進(jìn)來,右邊的Target選擇ARM,點(diǎn)擊Generate,
最后將生成的序列碼復(fù)制下來,就可以退出這個軟件了,
最后回到Keil5軟件,將剛剛生成的序列碼粘貼到LIC位置,點(diǎn)擊Add LIC即可,如下圖所示:
提示LIC添加成功,并且上面的MDK-ARM這一行的使用期限顯示2032年,就表示軟件注冊完成了。
1.4 安裝STLINK驅(qū)動
首先,我們需要將STLINK插到電腦上,
然后在 此電腦->右鍵->設(shè)備管理器
,打開設(shè)備管理器的窗口,在其他設(shè)備里面可以看到這個STLINK是在其他設(shè)備的列表上,并且圖標(biāo)帶了個感嘆號,說明我們的電腦上目前是沒有安裝STLINK驅(qū)動的; 如下圖所示
如果插上STLINK,在這個列表里找一下,能找到STLINK的設(shè)備且沒有感嘆號,那說明你的電腦已經(jīng)裝過STLINK的驅(qū)動了,就不需要進(jìn)行這一步了。
如果沒有安裝STLINK驅(qū)動,我們則需要安裝一下:
這個驅(qū)動程序Keil軟件自帶的就有,我們可以打開Keil5的安裝目錄,在ARM->STLink->USBDriver
里面,找到amd64.exe就是64位的,X86是32位的:
我的電腦是64位的,那么雙擊這個64,然后一直Next即可。安裝完成后,可以發(fā)現(xiàn)沒有感嘆號了:
另外這個目錄下,還有JLINK的驅(qū)動,JLINK也是一種常用的調(diào)試器,如果你想安裝JLINK驅(qū)動的話可以打開這里的Segger文件夾,
這里面就可以安裝JLINK的驅(qū)動了。
1.5 安裝USB轉(zhuǎn)串口驅(qū)動
同樣我們先把USB串口模塊插在電腦上,這個USB轉(zhuǎn)串口的芯片是CH340,和之前51開發(fā)板上的一樣,如果之前學(xué)過51,那么大概率已經(jīng)裝過該驅(qū)動了。
如果這里有感嘆號,就需要裝一下驅(qū)動,如果能正常識別,就不需要裝了。
CH340的驅(qū)動在資料文件夾里,打開工具軟件,打開USB轉(zhuǎn)串口CH340驅(qū)動,雙擊以下EXE程序:
點(diǎn)擊安裝
出現(xiàn)驅(qū)動安裝成功就ok了;
設(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ù)的壓縮包,大家可以在百度云鏈接提供的資料里找到固件庫的文件,如下圖所示:
可以看到STM32F10x標(biāo)準(zhǔn)外設(shè)庫的這個壓縮包,解壓后就可以看到庫函數(shù)的文件夾目錄了,
- _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
然后選擇我們剛才新建的文件夾(桌面上的STM32Project),在里面再新建一個文件夾,用來存放本次的工程,如下圖:
起個名字,就叫2-1 STM32工程模板,
然后點(diǎn)進(jìn)去,接下來給工程文件起個名字,在這里我們可以起一個通用一點(diǎn)的名字,這個工程是干啥的我們可以在文件夾名稱說明,文件夾的名稱是方便改的,但是工程的名稱以后不太方便改,所以我們就起個Project的名稱,然后點(diǎn)擊保存:
接下來選擇器件型號,我們的芯片型號是STM32F103C8T6,所以這里選擇STM32F103C8這個,
點(diǎn)擊ok后,會彈出keil軟件的一個新建工程小助手,這個小助手可以幫助我們快速新建工程,我們暫時不用這個小助手,可以直接把它叉掉:
接下來工程就已經(jīng)建好了,但是這里的工程文件是空空如也,
2.2.2 添加啟動文件
2.2.2.1 添加啟動文件
現(xiàn)在這個工程還是不能直接用的,我們需要給他添加一個工程的必要文件,那我們打開我們的固件庫文件夾,路徑如下圖:
打開Libraries->CMSIS->CM3->DeviceSupport->ST->STM32F10x->startup->arm
,
這些就是STM32的啟動文件
,STM32的程序就是從啟動文件
開始執(zhí)行的;我們把這些文件復(fù)制下來,然后回到工程模板文件夾里,可以看到我們剛剛新建工程后自動生成的文件:
在這里新建一個文件夾Start用來存放啟動文件,將剛剛復(fù)制的啟動文件復(fù)制到Start文件夾里:
2.2.2.2 添加寄存器描述文件
然后將資料庫里的以下三個文件也復(fù)制到Start里面:
其中stm32f10x.h是STM32的外設(shè)寄存器描述文件,作用類似于51單片機(jī)的頭文件REGX52.H,是用來描述STM32有哪些寄存器和它對應(yīng)的地址的;
下面的兩個system文件是用來配置時鐘的, STM32主頻是72MHz,就是system文件里的函數(shù)配置的;
這三個文件也都復(fù)制到Start下面;
2.2.2.3 添加內(nèi)核寄存器描述文件
打開以上路徑,將兩個core文件復(fù)制到Start文件夾下;
這兩個cm3(Cortex-M3)文件就是內(nèi)核的寄存器描述;當(dāng)然他還帶了一些內(nèi)核的配置函數(shù),所以多了個.c文件。
到此為止,我們工程的必要文件就復(fù)制完成了,最終Start文件夾下包含的所有文件如下所示:
2.2.2.4 以上文件添加到工程
再回到keil軟件,把我們剛剛復(fù)制的那些文件添加到工程里來,先選中Source Group 1,然后單擊一下,把這個組改一下名字,也叫Start
然后右鍵,選擇添加已經(jīng)存在的文件夾到組里來
打開Start文件夾把下面這個文件過濾器選擇All files,
然后將startup_stm32f10x_md.s
、以及所有的.c
和.h
文件都添加進(jìn)來(至于為什么這么多啟動文件單單只添加md.s,這個后面再講),選好后,點(diǎn)擊Add;然后Start文件夾里面的文件就添加好了,如下圖所示:
這里的文件都是STM32里最基本的文件,是不需要我們修改的,我們添加進(jìn)來即可。且我們可以看到這些文件圖標(biāo)上帶了個小鑰匙,表示他們是只讀的文件;
2.2.2.5 在工程中添加頭文件路徑
最后我們還需要在工程選項里添加上這個文件夾的頭文件路徑,否則軟件是找不到.h
文件的;
點(diǎn)擊魔術(shù)棒按鈕,打開工程選項,在C/C++里,找到Include Paths欄,然后點(diǎn)擊右邊三個點(diǎn)的按鈕,
在這里點(diǎn)新建路徑,
然后再點(diǎn)三個點(diǎn)的路徑,把Start的路徑添加進(jìn)來:
點(diǎn)擊OK,這樣就把這個文件夾的頭文件路徑添加進(jìn)來了;
2.2.3 新工程測試
接下來我們新建一個main函數(shù)測試一下這個工程是否可行;
打開工程文件夾,新建一個User文件夾:
我們的main函數(shù)就放在這個文件夾里,然后再keil里,在Target 1這里點(diǎn)擊右鍵,點(diǎn)擊添加組:
然后將名字改為User:
然后再User上右鍵,點(diǎn)擊添加新文件,
選擇C文件,名字叫main:
下面的路徑注意一下,要選擇User文件夾,要不然默認(rèn)是放在文件夾外面的:
然后點(diǎn)擊Add,這樣我們就有了main.c文件了:
在main.c里,我們先右鍵插入頭文件,選擇stm32f10x.h
:
然后寫一個main函數(shù),并寫入測試代碼,然后點(diǎn)擊build:
可以看到結(jié)果為編譯通過,0警告0錯誤,則證明工程建立成功了:
這里需要注意,文件的最后一行必須要空一行,否則會報警告。
這個工程目前還沒有添加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)連接好:
你的接口也有可能是以下這樣:
SWCLK<---->SWCLK
SWDIO<---->SWO
GND<---->GND
3.3V<---->3.3V
連接好之后如下圖所示:
然后把STLINK插在電腦上
插上電之后,板子上的電源燈應(yīng)該會常亮,另一個諒解在PC13口上的燈默認(rèn)應(yīng)該是閃爍狀態(tài),這是芯片里的一個測試程序;
然后我們再在Keil里面配置一下調(diào)試器:點(diǎn)擊魔術(shù)棒按鈕->選擇DEBUG->,這個調(diào)試器默認(rèn)是ULINK,改成ST-Link Debugger
然后再點(diǎn)擊上圖3旁邊的Settings按鈕,在Flash Download里,把Reset and Run這一項勾上:
勾上這一項的目的是,我們下載程序后會立馬復(fù)位并執(zhí)行,這樣方便一些;否則每次下載之后還要按一下板子上的復(fù)位按鍵才能執(zhí)行程序;配置好之后點(diǎn)擊確認(rèn)即可。
然后將以下代碼寫進(jìn)main.c里:
然后編譯并下載,
現(xiàn)象是燈就會滅:
如果將代碼改為以下:
燈就會被亮:
這就是通過寄存器控制LED燈,通過寄存器配置LED燈要一直查手冊,來了解每一個寄存器的每一位是干啥的, 才能成功點(diǎn)亮。
2.2.5 使用庫函數(shù)實現(xiàn)點(diǎn)燈
新建一個文件夾叫Library,用來存放庫函數(shù),
接著打開固件庫的文件夾,打開Libraries->STM32標(biāo)準(zhǔn)外設(shè)驅(qū)動->src
:如下圖
這些就是庫函數(shù)的源文件,這個misc.c
是內(nèi)核的庫函數(shù),其他的就是內(nèi)核外的外設(shè)庫函數(shù)了;這個misc就是混雜的意思;按ctrl+A全選,然后復(fù)制,在Library下粘貼,如下圖所示:
然后再打開固件庫的inc
文件夾:
這些是庫函數(shù)的頭文件,繼續(xù)全選并復(fù)制,同樣在Library文件夾下粘貼:
然后回到Keil軟件,同樣在Target1處右鍵,添加組,
改個名字叫Library:
再右鍵,添加已經(jīng)存在的文件,打開Library,ctrl+A,Add:
這樣就把所有的庫函數(shù)文件都添加進(jìn)來了;但是對于這個庫函數(shù)來說,現(xiàn)在還不能直接使用,需要再添加一個文件:打開固件庫的文件夾(路徑為固件庫\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template
),找到如下三個文件:
其中stm32f10x_conf.h
是用來配置庫函數(shù)頭文件的包含關(guān)系的,另外這里面還有個用來參數(shù)檢查的函數(shù)定義,這是所有庫函數(shù)都需要的;兩個it結(jié)尾的文件是用來存放中斷函數(shù)的;
把這三個文件復(fù)制下來,粘貼進(jìn)工程的User目錄下:
接著回到Keil軟件, 在User組里,把剛發(fā)財那三個文件添加進(jìn)來:
因為在頭文件中定義了如下代碼:
所以我們需要對USE_STDPERIPH_DRIVER宏進(jìn)行定義,才能包含到stm32f10x_conf.h頭文件:
添加該宏的步驟如下:
這樣我們基于庫函數(shù)的工程就建好了;我們可以看一下,這個Library里面的庫函數(shù)也都帶了鑰匙,說明只讀;
此時編譯一下,結(jié)果如下:
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號口的低電平,使用的是低電平),所以燈會亮:
2.2.6 補(bǔ)充:庫函數(shù)中的啟動文件選擇
在第2.2.2.4 節(jié)中,添加啟動文件時,我們選擇了md.s結(jié)尾的啟動文件,
為什么選擇這個而不選擇添加其他的呢?
先看一下下面的表:
我們使用的STM32F103系列C8T6,其Flash大小是64K,按照表中的對應(yīng)關(guān)系,需要選擇MD的啟動文件。
2.2.7 總結(jié):新建工程的步驟
工程架構(gòu):文章來源:http://www.zghlxwxcb.cn/news/detail-498251.html
文章來源地址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)!