一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

STM32 標(biāo)準(zhǔn)固件庫的下載,文件介紹和工程的建立(綜合)

 旭日東升4k165w 2019-09-07

前言

  1. 博文基于ARM Cortex-M3內(nèi)核的STM32F103ZET6芯片和標(biāo)準(zhǔn)3.5.0庫;
  2. 博文介紹標(biāo)準(zhǔn)庫中個文件夾的含義和以及一個簡單工程的建立;
  3. 如有不足之處還請博友多多指教;

標(biāo)準(zhǔn)庫的下載

標(biāo)準(zhǔn)庫的獲取方式:
第一步:進入官網(wǎng):https://www./content/st_com/zh.html
第二步:依次進行下列操作
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在下面這個表格里,能看到很多系列的標(biāo)準(zhǔn)庫,可以根據(jù)自己需求選擇;這里我選擇STM32F10x系列;
(下面這個表格是根據(jù)芯片選擇的,或許有人會有一個疑問:為什么選擇了第三個,明明第一個也是支持STM32F10x的,原因就是版本不同,第三個是目前最新的版本,第一個是過去的版本)
在這里插入圖片描述
在這里插入圖片描述
點擊下面獲取軟件時候,會讓你登錄或注冊,登錄注冊就可以了;我直接跳過這一步了;
在這里插入圖片描述
然后就開始下載了;(如果覺得太慢的話,可以把下載地址復(fù)制到迅雷里)
在這里插入圖片描述

標(biāo)準(zhǔn)庫各文件的含義

  1. 將下載的壓縮包解壓縮后會看到這個文件夾:文件夾名字的含義是:STM32F10x系列處理器的標(biāo)準(zhǔn)庫,版本3.5.0
    基于庫函數(shù)開發(fā)的項目,每次建立新的工程都要訪問這個文件夾;
    在這里插入圖片描述
  2. 進入后可以看到下列文件夾
    在這里插入圖片描述
    ** _htmresc**:不用在意這個文件夾,就兩張ST的照片;
    Utilities:實用程序,提供了很多小的程序,比如ASCII碼的編碼,IIC通信的代碼等;這個學(xué)習(xí)前期也可以不用在意;
    Release_Notes.html:STM32F10x標(biāo)準(zhǔn)外設(shè)庫(StdPeriph_Lib)發(fā)行說明,對標(biāo)準(zhǔn)庫的各個版本的區(qū)別,即版本的變更;
    stm32f10x_stdperiph_lib_um.chm:這個文件就很重要;此文件包含標(biāo)準(zhǔn)庫里的所有的文件,可以很方便的查看各個文件內(nèi)部的代碼,不用通過軟件查看各個文件代碼;很輕巧很方便;
    (上面這四個需要時才會使用,一般很少使用,下面這兩個才是最重要的)
    Libraries:庫;文件夾內(nèi)部結(jié)構(gòu)如圖:
    在這里插入圖片描述
    對各個文件和部分文件夾進行介紹:
  1. core_cm3.c和core_cm3.h:由ARM公司提供的CMSIS核心文件,提供進入M3內(nèi)核的接口;(此文件盡量不能改)
    文件夾startup:顧名思義內(nèi)部放著啟動文件,在此文件夾下有arm,gcc_ride7,iar,TrueSTUDIO四個子文件夾,打開后會發(fā)現(xiàn)四個文件夾下啟動文件文件名一樣,為什么會這樣的?原因是stm32的開發(fā)環(huán)境不止一種,這個文件夾名分別代表了各個環(huán)境的啟動文件,比如如果用KEIL MDK環(huán)境開發(fā)就選擇arm文件夾下的啟動文件,如果用IAR環(huán)境開發(fā)就選擇iar環(huán)境下的啟動文件;
  2. startup_stm32f10x_XX.s:芯片啟動文件;主要功能有兩個:① 程序開始運行后,使程序進入系統(tǒng)初始化函數(shù)SystemInit(),在此處,完成對芯片的時鐘系統(tǒng),管腳等進行初始化;② 初始化結(jié)束后使程序進入主函數(shù)main()進行;
    這里發(fā)現(xiàn)一個問題:arm文件夾下不止這一種,那么應(yīng)該選擇哪一個那?看下表
文件名含義容量范圍
startup_stm32f10x_ld.s小容量啟動文件FLASH≤32K
startup_stm32f10x_md.s中等容量啟動文件64K≤FLASH≤128K
startup_stm32f10x_hd.s大容量啟動文件256K≤FLASH

(其他幾個暫時用不著,先不介紹,后續(xù)用到的時候再補充)

  1. stm32f10x.h:STM32F10x系列芯片頭文件,是所有外設(shè)的頭文件,這個經(jīng)常被各個源文件調(diào)用的頭文件;
    system_stm32f10x.c和system_stm32f10x.h:系統(tǒng)配置文件;其中包括的System()函數(shù)用來配置初始化的整個時鐘系統(tǒng);
    inc:芯片外設(shè)頭文件;包含所有STM32芯片外設(shè)的所有頭文件;一般在建立工程的時候用到那個外設(shè)就調(diào)用那個外設(shè)頭文件,和src搭配使用;
    src:芯片外設(shè)源文件;包含所有STM32芯片外設(shè)的所有源文件;一般在建立工程的時候用到那個外設(shè)就調(diào)用那個外設(shè)源文件,和inc搭配使用;

Project: 工程文件夾;此文件夾提供了建立工程的模板和模塊的例程;
在這里插入圖片描述
STM32F10x_StdPeriph_Examples:包含標(biāo)準(zhǔn)庫所有外設(shè)例程;例程內(nèi)是ST公司提供的模塊代碼,根據(jù)需要可以直接摘取使用;
STM32F10x_StdPeriph_Template:建立一個庫開發(fā)工程的模板;我們下面建立工程的時候可以效仿這個模板,模板的意思就是這個是ST公司的工程師提供的,但是用不用這個模板看個人愛好,一般我們建立工程都有自己的風(fēng)格,但關(guān)鍵性的庫文件都是一樣的;main.c很常見,我們建工程的時候自己建也可以;stm32f10x_conf.h是配置文件;stm32f10x_it.c和stm32f10x_it.h為中斷函數(shù),不過內(nèi)部只包含9個中斷函數(shù);

工程的建立

  1. 新建文件夾——重命名:test

  2. 進入test,test內(nèi)分別建立FWLib,CMSIS,USER,OBJ四個文件夾

  3. 進入3.5.0固件庫文件夾,進入到STM32F10x_Stdperiph_Lib_V3.5.0→Libraries→STM32F10x_StdPeriph_Driver,復(fù)制inc和src文件夾到test文件夾下的FWLib下;

  4. 進入3.5.0固件庫文件夾,進入到STM32F10x_StdPeriph_Lib_V3.5.0→Libraries→CMSIS→CM3→CoreSupport,復(fù)制core_cm3.h和core_cm3.c到test文件夾下的CMSIS下;

  5. 進入3.5.0固件庫文件夾,進入STM32F10x_StdPeriph_Lib_V3.5.0→Libraries→CMSIS→CM3→DeviceSupport→ST→STM32F10x;復(fù)制startup文件夾和Release_Notes,stm32f10x.h和system_stm32f10x.c和system_stm32f10x.h到test文件夾下的CMSIS下

  6. 打開3.5.0固件庫文件夾,進入STM32F10x_StdPeriph_Lib_V3.5.0→Project→STM32F10x_StdPeriph_Template,復(fù)制main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h到test文件夾下的USER文件夾下;

  7. 開始打開keil5建立工程,project→NEWproject→選擇器件類型(我這里默認(rèn)選擇STM32F103ZET6)→OK→NO;

  8. 右鍵target1→manang components,在Groups框內(nèi)新建USER,F(xiàn)WLib,CMSIS,STATUP然后OK,

  9. 展開target1,雙擊USER,分別雙擊main.c和stm32f10x_it.c加入到USER文件夾;

  10. 雙擊FWLib,選擇FWLib并將FWLib文件夾下的src文件夾下的所有文件添加;

  11. 雙擊CMSIS,選擇CMSIS文件夾,將core_cm3.c和system_stm32f10x.c添加

  12. 雙擊STARTUP,選CMSIS→startup→arm,將startup_stm32f10x_hd.s添加;

  13. 配置工程:
    晶振=8.0,
    output→create HEX;
    C/C++→Optimization→level3(-O3);
    C/C++→include paths→新建→選中USER,再新建→選中→FWLib→inc,再新建→選中→CMSIS,然后OK
    復(fù)制USE_STDPERIPH_DRIVER,STM32F10X_HD到C/C++的define內(nèi),然后OK。

  14. 測試:清空main.c 內(nèi)的全部代碼,然后編寫如下程序調(diào)試;

#include 'stm32f10x.h' Int main() { } //注意在每個源文件和頭文件的最后要空一行,不然會有警告;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

如果編譯通過就沒有問題,可以放心的寫自己的代碼了;

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日本一本在线免费福利| 中文字幕中文字幕在线十八区| 九九视频通过这里有精品| 中文字幕亚洲人妻在线视频| 99久久婷婷国产亚洲综合精品| 91亚洲国产成人久久| 国产一区二区三区精品免费| 中文字幕有码视频熟女| 99热在线播放免费观看| 亚洲第一视频少妇人妻系列 | 国产日本欧美韩国在线| 微拍一区二区三区福利| 国产精品久久三级精品| 中国美女草逼一级黄片视频| 高清不卡一卡二卡区在线| 亚洲欧美国产网爆精品| 色一情一乱一区二区三区码| 日韩午夜福利高清在线观看| 伊人网免费在线观看高清版| 日韩精品福利在线观看| 亚洲中文字幕剧情在线播放| 日韩国产亚洲欧美另类| 国产乱人伦精品一区二区三区四区 | 国产日产欧美精品视频| 欧美日韩一区二区午夜| 亚洲国产丝袜一区二区三区四| 精品人妻一区二区三区免费| 日韩精品日韩激情日韩综合| 国产精品不卡高清在线观看| 国产在线一区二区免费| 精品国产亚洲av久一区二区三区| 欧美日韩视频中文字幕| 亚洲一区二区三区熟女少妇| 国产精品尹人香蕉综合网 | 加勒比人妻精品一区二区| 国产不卡在线免费观看视频| 午夜久久精品福利视频| 日本人妻精品中文字幕不卡乱码| 欧美丰满大屁股一区二区三区| 熟女体下毛荫荫黑森林自拍| 男人大臿蕉香蕉大视频|