久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4454|回復(fù): 1
收起左側(cè)

STM32固件庫使用方法與寄存器與庫函數(shù)概覽資料下載

[復(fù)制鏈接]
ID:382097 發(fā)表于 2018-8-2 12:01 | 顯示全部樓層 |閱讀模式
STM32 V3.4固件庫使用實例
  • 概述
  剛?cè)胧諷TM32,查了好多資料也看了好多開發(fā)板的程序和教程以自己的思路先上一個工程框架吧,剩下的就是大家想加什么就什么了,希望對和我一樣的STM32初學(xué)者有點幫助,如果您是初次使用ARM MDK希望對你也有幫助,本實例一個“神馬”功能都沒有的RS422模塊
2建立目錄
2.1新建工程目錄:“RS422”,你也可以根據(jù)自己的需要命名此頂層目錄;
2.2在目錄“RS422”下新建 “RVMDK”目錄,表示采用ARM MDK開發(fā)環(huán)境;
2.3在“RVMDK”目錄下新建目錄“V1”,表示軟件版本V1.0,這個好處在于下次將整個目錄復(fù)制一下改為“V2”,軟件版本就是V2.0了。
2.4在“V1”目錄下新建 “Libraries”目錄;
2.5在“V1” 目錄下新建 “Project” 目錄。
2.6在“Project”目錄下新建“OBJ”、“LIST”、“Pro”3個目錄。
2.7在“V1” 目錄下新建“USER”目錄。
2.8在“USER”目錄下新建“INC”、“SRC”2個目錄。
                    
1:目結(jié)構(gòu)
3拷貝文件(已經(jīng)寫的很詳細了,就不上圖了)
3.1將固件庫目錄“STM32F10X_StdPeriph_lib_V3.4.0”“Libraries”下的所有目錄拷貝到工程目錄“RS422” “RVMDK” “V1”  “Libraries”目錄下。
3.2將固件庫目錄 “STM32F10X_StdPeriph_lib_V3.4.0” “Project”  “STM32F10x_StdPeriph_Examples”  “GPIO” “IOToggle”目錄下的stm32f10x_it.c”、“system_stm32f10x.c拷貝到工程目錄“RS422” “RVMDK” “V1” “USER”“SRC”目錄下,在此“SRC”目錄下新建“main.c”文件,“main.c”先“神馬”也不寫。
3.3 將固件庫目錄“STM32F10X_StdPeriph_lib_V3.4.0”“Project” “STM32F10x_StdPeriph_Examples” “GPIO”“IOToggle”目錄下的stm32f10x_conf.h”、“stm32f10x_it.h這2個文件拷貝到工程目錄 “RS422” “RVMDK”  “V1”“USER” “INC”目錄下。
4  建立工程:(已經(jīng)寫的很詳細了,就不上圖了)
4.1我用的是ARM 的MDK4.14開發(fā)環(huán)境,運行“Keil uVision4” ;
4.2點擊主菜單欄 “Project”“New uVision Project”,選擇在工程目錄的“V1” “Project” “Pro”目錄下命名新建工程為“RS422_MODULE.uvproj”(當(dāng)然也可以命名為你自己需要的工程名
4.3接下來出現(xiàn)CPU選擇窗口,選擇CPU為 “STMicroelectronics” “STM32F103ZE” (這個大家根據(jù)自己的需要選擇),點擊 “OK” 按鈕
4.4接下來出現(xiàn)Copy STM32 Startup Code to Project Folder and ADD File to Project ?提示時選擇“否”在后面的步驟中會根據(jù)CPU選擇啟動文件的,這里不用選擇,完成工程建立
5 工程管理
上一節(jié)新建的工程還是空空的,這一步要將它實例化
5.1 在“Project”窗口中用鼠標左鍵點擊“Target 1”,再點擊右鍵彈出菜單選擇菜單中的 “Manage Components”子菜單(見圖2,出現(xiàn)“Components,Environment and Books”窗口(見圖3
                          2
3
5.2 用鼠標雙擊“Project Targets”欄中的 “Target 1” 將 “Target 1” 改為 “RS422_MODULE” (見圖4,在中間的 “Groups”欄中添加“USER”、“STM32_LIB”、“MDK_STARTUP”、“CMSIS”4個條目(見圖5
圖 4
圖5
5.3 在“USER”條目的“Files”欄中添加目錄“V1”  “USER”  “SRC”下的“main.c”、“stm3210x_it.c”2個文件,通過窗口的“Add  Files”按鈕可以添加文件 (見圖6
6
5.4在 “STM32_LIB” 條目的 “Files” 欄中添加目錄“V1”  “Libraries” “STM32F10x_StdPeriph_Driver” “SRC”目錄下的“stm3210x_misc.c”、“stm3210x_rcc.c”、“stm3210x_gpio.c”、 “stm3210x_usart.c”4個文件(見圖7,其中“stm3210x_misc.c”、“stm3210x_rcc.c” 這2個文件是必須的(我自己的理解)。 因為我的程序要用到“GPIO”和“串口”,所以又添加了“stm3210x_gpio.c”、 “stm3210x_usart.c”這2個文件,大家在開發(fā)中如果用到STM32 的其他功能,再添加相應(yīng)的接口庫文件就可以了。
                               7
5.5在“MDK_STARTUP”條目的“Files” 欄中添加目錄“V1”  “Libraries”  “CMSIS”“CM3”“DeviceSupport”“ST”“STM32F10x”“startup”“arm”(我的神啊:ST的目錄夠深的)下的“startup_stm3210x_hd.s”這個文件(見圖8,因為我選用的CPU是“STM32103ZE” 是高容量FLASH的CPU所以選擇這個文件。
                               8
5.6在 “CMSIS” 條目的 “Files” 欄中添加目錄 “V1”  “Libraries”  “CMSIS” “CM3”“CoreSupport”下的“core_cm3.c”和目錄
“V1”  “USER”  “SRC”下的“system_stm32f10x.c”這2個文件(見圖9
                             9
5.7 退出“Keil uVision4”開發(fā)環(huán)境,將工程目錄“RS422”去掉文件夾的只讀屬性,并“應(yīng)用到子目錄和所有文件”,這是因為STM32固件庫下載下來是只讀的,無法修改庫中的文件。去掉只讀屬性后再進入“Keil u Vision4”,然后打開工程“RS422_MODULE.uvproj”。
6 工程設(shè)置
6.1在“Project”窗口中用鼠標左鍵點擊最頂層的“RS422”,再點擊右鍵彈出菜單選擇菜單中的 “Options for Target ‘RS422’…”子菜單(見圖10,出現(xiàn)“Options for Target  ‘RS422’”窗口(見圖11,可以按圖11進行設(shè)置。
                             圖 10
                                圖11
IROM1IRAM1根據(jù)芯片不同而不同,一般KEIL會自動根據(jù)芯片填好的
6.2 選擇頂層的“Output ”,進入“Output”設(shè)置頁,點擊下面的“Select Folder for Objects…”按鈕,選擇目錄“V1” “Project”“OBJ”為目標文件目錄,選中“Create HEX File” (見圖12)。
件生成目錄(見圖13),所有的目標文件和燒寫到芯片中的文件都在這里。選擇“Create HEX File”前面的方框,用來生成目標文件。
                              圖 12
以下兩點很重要:
  • 將上圖Name of Executable后的文本框中的RS422_MODULE 更改為RS422,否則用JLINKULINK仿真時會報錯,這是經(jīng)過1個上午的奮斗才找見的KEIL BUG,我的截圖忘了更改了。
  • 選中“Browse infomation”前的復(fù)選框,我的截圖忘了選了,要不會找不見函數(shù)或變量的定義的
6.3 選擇頂層的“Listing”頁 ,進入“Listing”設(shè)置頁,點擊下面的“Select Folder for Listings…”按鈕,選擇目錄“V1” “Project”“LIST”目錄為list文件生成目錄(見圖13)。
                                 圖13
6.4 這是關(guān)鍵的一步,選擇頂層的“C/C++”頁 ,進入“C/C++”設(shè)置頁,在“Preprocessor Symbols”的“Define:”文本框中填入“STM32F10X_HD,USE_STDPERIPH_DRIVER”。如果不填編譯會報錯,大家可以試一下,這是因為在固件庫“stm32f10x.h”中有如下的片斷(見圖14,需要根據(jù)你的CPU來去掉相應(yīng)行的注釋,我選的是STM32系列高容量的CPU,所以需要去掉“stm32f10x.h”中第“0054”行“/*define STM32F10X_HD */”這一行的注釋符,但是不能換一個CPU就改一次注釋吧,老去改文件自己哪天不定就改的迷糊了,幸好編譯器提供了這個功能,只要按本步驟的方法加入“STM32F10X_HD”就可以了,省得自己換了CPU 還得把文件找出來更改。加入“USE_STDPERIPH_DRIVER”是同樣的道理,這個出現(xiàn)在“stm32f10x.h”的第“8280”行(見圖15),但是固件庫中并未定義“USE_STDPERIPH_DRIVER” ,所以也需要用這種辦法靈活的加入,否則編譯時就不會鏈接“stm32f10x_conf.h”,這個文件可是大有用處,打開看看吧,這里就不描述了。
                              14
                             15
6.5  引用固件庫文件所在的目錄也在頂層的“C/C++”頁中進行設(shè)置,上面寫的啰里啰唆的,已經(jīng)太多了,所以寫在這里吧。如果現(xiàn)在編譯程序,會報錯的,看看出錯提示,有一些庫文件跑到開發(fā)工具Keil的安裝目錄下鏈接去了,這是因為沒有設(shè)置STM32固件庫的目錄,編譯器就默認到“Keil”根目錄下的某某目錄找去了。我們工程用到的STM32 3.4.0固件庫的相關(guān)文件在上面第3節(jié)中已經(jīng)直接拷貝到工程里了,這個是因為STM32庫升級到3.4已經(jīng)經(jīng)歷了好多個版本了,而安裝完KEIL 后并不是最新的3.4庫,不能說哪天系統(tǒng)OVER了,裝一次KEIL 就升級一次庫吧,干脆就把庫文件直接放在工程中,即使將工程拷貝到其他機器上也可以編譯,不會因為沒有庫文件而報錯,唉!又啰嗦了這么多。在窗口的“Include Paths”旁邊的文本框后有一個按鈕,點擊調(diào)出“Folder Setup”窗口。這里要添加4個目錄(見圖16),因為這4個目錄里都有“.h ”文件:
“ RS422\RVMDK\V1\Libraries\STM32F10x_StdPeriph_Driver\inc” ;
“ RS422\RVMDK\V1\Libraries\CMSIS\CM3\CoreSupport ” ;
“ RS422\RVMDK\V1\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x ” ;
“ RS422\RVMDK\V1\USER\inc ” ;
                             16
6.6 其他“C/C++”按圖17設(shè)置默認就可以了。
                 圖17
7. main.c文件
因為這是一個沒有任何功能的工程框架,所以main.c可以這么寫:
#include "stm32f10x.h"
main ()
{
  while (1)
   {
      ;
   }
}
編譯程序,沒有警告和錯誤,框架就算生成了,想添加自己的代碼就可以以后添加了,自己的代碼放在工程目錄“RS422” “RVMDK” “V1” “USER”下的“INC”或“SRC”目錄下,“INC”下放你的“.h”文件,“SRC”目錄下放你的“.C”文件
以上是本人對STM32工程框架的實例實現(xiàn),如果路過的有更好的,希望可以交流。


完整的Word格式文檔51黑下載地址:
Stm32寄存器與庫函數(shù)概覽(摘自固件庫使用手冊).doc (4.75 MB, 下載次數(shù): 17)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:382350 發(fā)表于 2018-8-2 23:51 | 顯示全部樓層
以后不怕學(xué)32沒資料了
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久久亚洲av毛片大全 | 美国黄色一级片 | 国产精品久久久精品 | 免费观看一区二区三区毛片 | 日本一区二区不卡 | 亚洲精品国产电影 | 欧美成ee人免费视频 | 亚洲传媒在线 | 久久人爽爽人爽爽 | 精品av| 亚洲性网 | 亚洲午夜电影 | 日韩免费福利视频 | 国产美女久久 | 中文字幕在线观看视频一区 | 自拍视频一区二区三区 | 95国产精品 | 欧美精品一区二区三区在线播放 | 国产毛片毛片 | 人人干人人干人人 | 亚洲一区中文字幕 | 国产精品欧美一区二区三区不卡 | 精品一区二区三区四区五区 | 精品婷婷 | 中文字幕91 | 欧美日韩视频一区二区 | 日韩午夜一区二区三区 | 91视视频在线观看入口直接观看 | 91精品国产91综合久久蜜臀 | 久久精品视频在线观看 | 午夜国产羞羞视频免费网站 | 国产精品亚洲一区二区三区在线观看 | 午夜视频在线播放 | 久久九九99 | 久久成人精品 | 国产精品视频免费 | 日本一区二区三区在线观看 | 国产精品日韩在线观看 | 成人乱人乱一区二区三区软件 | 欧美三级电影在线播放 | 午夜爱爱毛片xxxx视频免费看 |