STM32單片機(jī)技術(shù)與應(yīng)用項(xiàng)目教程 課件 項(xiàng)目二 STM32F4單片機(jī)的編譯集成環(huán)境MDK5的設(shè)置_第1頁(yè)
STM32單片機(jī)技術(shù)與應(yīng)用項(xiàng)目教程 課件 項(xiàng)目二 STM32F4單片機(jī)的編譯集成環(huán)境MDK5的設(shè)置_第2頁(yè)
STM32單片機(jī)技術(shù)與應(yīng)用項(xiàng)目教程 課件 項(xiàng)目二 STM32F4單片機(jī)的編譯集成環(huán)境MDK5的設(shè)置_第3頁(yè)
STM32單片機(jī)技術(shù)與應(yīng)用項(xiàng)目教程 課件 項(xiàng)目二 STM32F4單片機(jī)的編譯集成環(huán)境MDK5的設(shè)置_第4頁(yè)
STM32單片機(jī)技術(shù)與應(yīng)用項(xiàng)目教程 課件 項(xiàng)目二 STM32F4單片機(jī)的編譯集成環(huán)境MDK5的設(shè)置_第5頁(yè)
已閱讀5頁(yè),還剩68頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

STM32F4微控制器應(yīng)用項(xiàng)目二

STM32F4單片機(jī)的編譯集成

環(huán)境MDK5的設(shè)置任務(wù)2.1認(rèn)識(shí)STM32

官方標(biāo)準(zhǔn)固件庫(kù)與MDKSTM32F4微控制器應(yīng)用項(xiàng)目二

STM32F4

單片機(jī)的編譯集成環(huán)境MDK5的設(shè)置任務(wù)2.1認(rèn)識(shí)STM32

官方標(biāo)準(zhǔn)固件庫(kù)與MD

K任務(wù)2.2新建STM32F4

單片機(jī)項(xiàng)目工程STM32F4微控制器應(yīng)用

江薛似息成業(yè)技任務(wù)2.1認(rèn)識(shí)STM32官方標(biāo)準(zhǔn)固件庫(kù)與MDK【知識(shí)目標(biāo)】◆了解STM32官方STD標(biāo)準(zhǔn)固件庫(kù)與MDK編輯界面。【能力目標(biāo)】◆能夠闡述STM32

官方標(biāo)準(zhǔn)固件庫(kù)的架構(gòu)組成。【素質(zhì)目標(biāo)】◆培訓(xùn)系統(tǒng)學(xué)習(xí)能力?!舨殚喸O(shè)計(jì)資料的能力。◆培養(yǎng)分析問(wèn)題解決問(wèn)題的能力。1.STM32F4單片機(jī)的官方標(biāo)準(zhǔn)固件庫(kù)下載2.CMSIS

標(biāo)準(zhǔn)3.STM32F4

官方標(biāo)準(zhǔn)固件庫(kù)包4.STM32F4

單片機(jī)的關(guān)鍵配置文件5.系統(tǒng)啟動(dòng)文件6.MDK

簡(jiǎn)介STM32F4微控制器應(yīng)用本節(jié)學(xué)習(xí)內(nèi)容:STM32F4微控制器應(yīng)用STM32F4

單片機(jī)的官方標(biāo)準(zhǔn)固件庫(kù)下載ST

公司為了方便用戶開發(fā)編寫程序,提供了一套標(biāo)準(zhǔn)的STM32F4

庫(kù)

,該固件庫(kù)對(duì)內(nèi)部的硬件電路功能以函數(shù)的形式提供了訪問(wèn)接口??梢酝ㄟ^(guò)查看庫(kù)函數(shù)的源程序,了解具體對(duì)寄存器的操作過(guò)程。STM32標(biāo)準(zhǔn)外設(shè)庫(kù)的下載:ST

官網(wǎng)下載https://www.stmcu.com.cn/Designresource/list/STM32%20MCU/firmware

software/firmware

software>開源電子網(wǎng)http://www.openedv.comSTM32F4微控制器應(yīng)用◆

CMSIS標(biāo)準(zhǔn)CMSIS

標(biāo)準(zhǔn)英文全稱是Cortex

Microcontroller

Software

Interface

Standard,ARM

Cortex微控制器軟件接口標(biāo)準(zhǔn)。ARM

是一個(gè)做芯片標(biāo)準(zhǔn)的公司,它負(fù)責(zé)的是芯片內(nèi)核的架構(gòu)設(shè)計(jì)。TI、ST

等公司并不做標(biāo)準(zhǔn),他們根據(jù)ARM

公司提供的芯片內(nèi)核標(biāo)準(zhǔn)設(shè)計(jì)自己的芯片。任何一個(gè)Cortex-M4芯

,內(nèi)核結(jié)構(gòu)都完全相同,不同的是芯片的存儲(chǔ)器容量、片上外設(shè)、IO以及其他模塊的區(qū)別。STM32F4微控制器應(yīng)用◆CMSIS標(biāo)準(zhǔn)

用戶

應(yīng)用程序代碼實(shí)時(shí)內(nèi)核中間件作系統(tǒng)內(nèi)核外設(shè)函數(shù)中間件函數(shù)

器件級(jí)外設(shè)函數(shù)CMSIS外設(shè)寄存器和中斷向量定義層NVIC嵌套向量中斷控制器圖

2

-

1

于CMSIS框架的應(yīng)用程序基本結(jié)構(gòu)Sys'Tick

實(shí)時(shí)內(nèi)核

定時(shí)器調(diào)試/跟蹤

接口其他

外設(shè)Cortex

CPU實(shí)時(shí)操M(fèi)CUCMSIS

框架內(nèi)分為3個(gè)基本功能層:內(nèi)核外設(shè)訪問(wèn)層:由ARM公司實(shí)現(xiàn),包含了名

稱定義、地址定義、存取內(nèi)核寄存器和外圍設(shè)備的協(xié)助函數(shù)。同時(shí)也為RTOS(實(shí)時(shí)操作系統(tǒng))

定義了獨(dú)立的內(nèi)核接口函數(shù)。中間件訪問(wèn)層:由ARM公司實(shí)現(xiàn),芯片廠商提供更新,主要負(fù)責(zé)當(dāng)以中間件訪問(wèn)的應(yīng)用程序

接口API函數(shù)。器件級(jí)外設(shè)訪問(wèn)層:由芯片廠商實(shí)現(xiàn),包含了

定義硬件寄存器的地址以及外設(shè)的訪問(wèn)函數(shù),

比如ST

公司提供的固件庫(kù)外設(shè)驅(qū)動(dòng)文件

(stm32f40x_gpio.c等文件)。另外廠商會(huì)對(duì)

進(jìn)

擴(kuò)

展,以

應(yīng)

。STM32F4微控制器應(yīng)用CMSIS標(biāo)準(zhǔn)用戶應(yīng)用程序代碼內(nèi)核外設(shè)函數(shù)

中間件函數(shù)

器件級(jí)外設(shè)函數(shù)外設(shè)寄存器和中斷向量定義層圖

2

-

1

于CMSIS框架的應(yīng)用程序基本結(jié)構(gòu)NVIC嵌套向量中斷控制器SysTick

實(shí)時(shí)內(nèi)核

定時(shí)器實(shí)時(shí)內(nèi)核

中間件調(diào)試/跟蹤

接口實(shí)時(shí)操

作系統(tǒng)Cortex

CPU其他

外設(shè)CMSISMCUSTM32F4微控制器應(yīng)用◆

STM32F4官方標(biāo)準(zhǔn)固件庫(kù)包介紹下載“STSWSTM32065STM32F4單片機(jī)DSP

與標(biāo)準(zhǔn)外設(shè)庫(kù)”后解壓縮后如圖2-2所示:STM32F4xx固件庫(kù)>STM32F4xx_DSP_StdPeriph_Lib_V1.4.0L

htmrescLibrariesProjectUtilitiesMCD-ST

LibertySW

LicenseAgreementV2.pdfeRelease

Notes.htmlstm32f4xx

dsp

stdperiph

lib

um.chmstm32f4xx

dsp

stdperiph

lib

um.chw圖2-2

“STSW_STM32065_STM32F4

單片機(jī)DSP

與標(biāo)準(zhǔn)外設(shè)庫(kù)”內(nèi)容《STM32F4xx_DSP_StdPeriph_Lib_V1.4.0>Libraries>CMSIS名稱DeviceDocumentationDSP_LibInclude□LibRTOSSVDCMSISENDUSERLICENCEAGREEMENT.pdfindex.htmlREADME.txtSTM32F4微控制器應(yīng)用STM32F4xx固件庫(kù)STM32F4xx_DSP_StdPeriph_Lib_V1.4.0>Libraries人名稱□CMSISSTM32F4xx_StdPeriph_DriverSTM32F4官方標(biāo)準(zhǔn)固件庫(kù)包介紹STM32F4微控制器應(yīng)用《STM32F4xx_DSP_StdPeriph_Lib_V1.4.0Libraries

>|STM32F4xx_StdPeriph_Driver名稱incsrc◎

Release_Notes.htmlSTM32F4xx固件庫(kù)STM32F4xx_DSP_StdPeriph_Lib_V1.4.0>

Libraries名稱□

CMSISSTM32F4xx_StdPeriph_DriverSTM32F4官方標(biāo)準(zhǔn)固件庫(kù)包介紹《STM32F4xx_DSP_StdPeriph_Lib_V1.4.0LibrariesSTM32F4xx_StdPeriph_Driver人名稱incsrc◎

Release_Notes.html□stm3244x_adch□stm32f4xx_can.h□stm32f4xx_crchDstm3244x_cryp.h□stm32f4xx_dac.h□stm3244x_dbgmcu.h□stm324xx_demi.h□stm32f4xx_dma.h□stm32f4xx_dma2d.□stm32f4xc_ext.h□stm32f4xx_flash.h□stm32f4xx_flash_ramfunc.h□stm32f4xx_fmch□stm32f4xx_fsmc.h□stm32f4xx_gpio.h□stm32

f4xx_hash.h□stm32f4xx_i2ch□stm32f4xx_iwdg.h□stm324xx_tdchSTM32F4微控制器應(yīng)用□misc.hSTM32F4官方標(biāo)準(zhǔn)固件庫(kù)包介紹STM32F4微控制器應(yīng)用

江薛糾息《STM32F4xx_DSP_StdPeriph_Lib_V1.4.0Libraries

STM32F4xx_StdPeriph_Driver名稱incsrc◎

Release_Notes.htmlstm32f4x_adc.cstm32f4x_can.cstm32f4x_crc.cstm32f4xx_cryp.cstm32f4xx_cryp_aes.cstm32f4x_cryp_des.c

stm32f4xx_cryp_tdes.c

stm32f4xx_dac.cstm32f4xx_dbgmcu.cstm32f4xx_dcmi.cstm32f4xx_dma.cstm32f4xx_dma2d.cstm32f4xx_exti.cstm32f4x_flash.cstm32f4xx_flash_ramfunc.cstm324xx_fmc.cstm32f4xx_fsmc.cstm32f4xx_gpio.cstm32f4xx_hash.cSTM32F4官方標(biāo)準(zhǔn)固件庫(kù)包介紹Libraries文件夾里面的文件在建立工程的時(shí)候會(huì)使用。STM32F4微控制器應(yīng)用STM32F4官方標(biāo)準(zhǔn)固件庫(kù)包介紹STM32F4xx固件庫(kù)

STM32F4xx_DSP_StdPeriph_Lib_V1.4.0>|Project名稱□STM32F4xx_StdPeriph_ExamplesSTM32F4xx_StdPeriph_Templates包含ST公司提供的官方實(shí)例(常用的硬件功能應(yīng)用),用戶可以參考這些實(shí)例編寫

自己的開發(fā)程序,縮短開發(fā)周期。存放工程模板,給出了常用的集中開發(fā)環(huán)境下的項(xiàng)目模板。STM32F4xx固件庫(kù)>STM32F4xx_DSP_StdPeriph_Lib_V1.4.0htmrescLibrariesProjectUtilitiesMCD-STLibertySWLicenseAgreementV2.pdfeRelease

Notes.html?stm32f4xxdsp

stdperiph

libum.chm□stm32f4xxdsp

stdperiph

lib

um.chw固件庫(kù)的幫助文檔,在開發(fā)過(guò)程中會(huì)用到。STM32F4微控制器應(yīng)用◆STM32F4官方標(biāo)準(zhǔn)固件庫(kù)包介紹序號(hào)文件所在目錄說(shuō)明1core_cm4.h\stm32f4_dsp_stdperiph_lib_V1.8.0\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Include該頭文件是CMSIS的核心文件,提供進(jìn)入

Cortex-M4內(nèi)核接口。用戶無(wú)須修改該文件。2stm32f4xx.h\stm32f4_dsp_stdperiph_lib_V1.8.0\STM32F4xx_DSP_Std

Periph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\IncludeSTM32F4片上外設(shè)訪問(wèn)層頭文件,該文件至關(guān)重要,對(duì)系統(tǒng)寄存器進(jìn)行了定義聲明以

及內(nèi)存操作,該文件同時(shí)還包含了時(shí)鐘的相

關(guān)定義、FPU和MPU單元開啟定義、中斷相關(guān)定義等。3system_stm32f4

xx.h\stm32f4_dsp_stdperiph_lib_V1.8.0\STM32F4xx_DSP_Std

Periph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include片上外設(shè)接入層系統(tǒng)頭文件。主要是申明設(shè)置系統(tǒng)及總線時(shí)鐘相關(guān)的函數(shù)。STM32F4微控制器應(yīng)用STM32F4

單片機(jī)的關(guān)鍵配置文件表2-1STM32F4單片機(jī)的關(guān)鍵配置文件序號(hào)文件所在目錄說(shuō)明4system_stm32f4xX.C\stm32f4_dsp_stdperiph_lib_V1.8.0\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates該文件是在系統(tǒng)啟動(dòng)時(shí)對(duì)整個(gè)系統(tǒng)和時(shí)鐘系

統(tǒng)進(jìn)行配置,系統(tǒng)啟動(dòng)后首先要調(diào)用該文件中的SystemInit函數(shù)。5stm32f4xx_it.c\stm32f4_dsp_stdperiph_lib_V1.8.0\STM32F4x_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Template用于集中編寫中斷函數(shù)6stm32f4xx_it.h\stm32f4_dsp_stdperiph_lib_V1.8.0\STM32F4x_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templatestm32f4xx_it.c對(duì)應(yīng)的頭文件。STM32F4微控制器應(yīng)用STM32F4

單片機(jī)的關(guān)鍵配置文件表2-1STM32F4單片機(jī)的關(guān)鍵配置文件序號(hào)文件所在目錄說(shuō)明7stm32f4xx_conf.h\stm32f4_dsp_stdperiph_lib_V1.8.0\STM32F4x_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Template外設(shè)驅(qū)動(dòng)配置文件,通過(guò)修改該文件中所包含的外設(shè)頭文件,用戶啟動(dòng)或禁用外設(shè)驅(qū)動(dòng)。8stm32f4xx_rcc.c\stm32f4_dsp_stdperiph_lib_V1.8.0\STM3

2F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\STM32F4xx_StdPeriph_Driver\src與系統(tǒng)時(shí)鐘RCC相關(guān)的一些操作函數(shù),主要是對(duì)一些時(shí)鐘的配置和使能。9stm32f4xx_rcc.h\stm32f4_dsp_stdperiph_lib_V1.8.0\STM3

2F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\STM32F4xx_StdPeriph_Driver\incstm32f4xx_rcc.c對(duì)應(yīng)的頭文件。STM32F4微控制器應(yīng)用STM32F4

單片機(jī)的關(guān)鍵配置文件表2-1STM32F4單片機(jī)的關(guān)鍵配置文件序號(hào)文件所在目錄說(shuō)明10misc.C\stm32f4_dsp_stdperiph_lib_V1.8.0\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\STM32F4xx_StdPeriph_Driver\src包含中斷優(yōu)先級(jí)以及內(nèi)核中滴答定時(shí)器的配置操作函數(shù),在實(shí)際設(shè)計(jì)中會(huì)經(jīng)常用到

misc.c和misc.h這兩個(gè)文件。11misc.h\stm32f4_dsp_stdperiph_lib_V1.8.0\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\STM32F4xx_StdPeriph_Driver\incmisc.c對(duì)應(yīng)的頭文件。STM32F4

單片機(jī)的關(guān)鍵配置文件表2-1STM32F4單片機(jī)的關(guān)鍵配置文件STM32F4微控制器應(yīng)用

江薛似息戰(zhàn)

業(yè)

學(xué)院系統(tǒng)啟動(dòng)文件完成以下工作:初始化堆棧指針SP。初始化PC指針,將指針PC設(shè)置為

“Reset_Handler”,系統(tǒng)啟動(dòng)后從

“Reset_Handler”向量入口開始執(zhí)行程序。初始化中斷向量表。配置系統(tǒng)時(shí)鐘,調(diào)用SystemInit。STM32F4xx固件庫(kù)>STM32F4xxDSP_Stdperiph

Lib_V1.4.0>Libraries>CMSIS>Device>ST>STM32F4xx>Source

>Templates>arm名稱startup_stm32f40_41×xX.s系統(tǒng)的啟動(dòng)文件startup_stm32f40xx.sstartup_stm32f401xx.sstartup_stm32f411xe.sSTM32F4微控制器應(yīng)用◆系統(tǒng)啟動(dòng)文件(/111///1//1//////1///1/////1/1/11/////1//,Stack_Size

EQU0x00000400將棧的區(qū)域“Stack_Size“大小設(shè)置為0x00000400(1K字節(jié))AREA

STACK,NOINIT,READWRITE,ALIGN=3Stack_Mem

SPACE

Stack_Size_initial_sp///////////////////////////,STM32F4微控制器應(yīng)用

息峨業(yè)技◆系統(tǒng)啟動(dòng)文件*********************************File

Name

:startup_stm32f40_41xXX.S*******************************************************************************/////////////////////////////////////////,Stack_Size

EQU0x00000400AREA

STACK,NOINIT,READWRITE,ALIGN=3定義了一個(gè)名為”STACK”的數(shù)據(jù)段。AREA偽指令用于定義一個(gè)代碼段或數(shù)據(jù)段,默認(rèn)為數(shù)據(jù)段,段名

若以數(shù)字開頭,則該段名需用“|”括起來(lái)。段的屬性包括NOINIT,READWRITE,ALIGN=3。Stack_Mem

SPACE

Stack_Size_initial_sp//////////////////STM32F4微控制器應(yīng)用

息峨業(yè)技◆系統(tǒng)啟動(dòng)文件*********************************File

Name

:startup_stm32f40_41xxx.S*******************************************************************************NOINIT含義為不對(duì)數(shù)據(jù)段的內(nèi)容進(jìn)行初始化或?qū)?nèi)容設(shè)置0。>READWRITE

屬性表示數(shù)據(jù)段可以進(jìn)行讀寫操作。ALIGN=3

表示數(shù)據(jù)段以23=8字節(jié)對(duì)齊。(/111///1//1//////1///1/////1/1/11/////1//,Stack_Size

EQU0x00000400AREA

STACK,NOINIT,READWRITE,ALIGN=3Stack_Mem

SPACE

Stack_Size開辟一個(gè)??臻g,??臻g的標(biāo)號(hào)為“Stack_Mem”,??臻g大小

為“Stack_Size”。SPACE偽指令用于開辟一個(gè)空間。_initialsp/////////11///111/11/111/1,STM32F4微控制器應(yīng)用

息峨業(yè)技◆系統(tǒng)啟動(dòng)文件File

Name

:startup_stm32f40_41xxX.S*******************************************************************************(/111///1//1//////1///1/////1/1/11/////1//,Stack_Size

EQU

0x00000400AREA

STACK,NOINIT,READWRITE,ALIGN=3Stack_Mem

SPACE

Stack_Size_initialsp標(biāo)號(hào)“_initial_sp”表示了堆空間的頂部,也就是棧頂。////////////,//111///111111///1/1,STM32F4微控制器應(yīng)用

息峨業(yè)技◆系統(tǒng)啟動(dòng)文件FileName

:startup_stm32f40_41xxX.S*******************************************************************************STM32F4微控制器應(yīng)用

息峨業(yè)技◆系統(tǒng)啟動(dòng)文件*********************************File

Name

:startup_stm32f40_41xxx.S*******************************************************************************//////////////////////11//11///11111///1//Heap_SizeEQU0x00000200AREA

HEAP,NOINIT,

READWRITE,

ALIGN=3heap_baseHeap_Mem

SPACE

Heap_Size_heap_limit//////1//////////////////////////////1//////////////堆的區(qū)域“Heap_Size”大小設(shè)置為2?(512)字節(jié),代碼定義了一個(gè)名為

“HEAP”

的數(shù)據(jù)段,標(biāo)號(hào)“

heap_base

”表示了的數(shù)據(jù)段的底部,標(biāo)號(hào)“_heap_limit

”表示了堆的頂部。STM32F4微控制器應(yīng)用◆系統(tǒng)啟動(dòng)文件通過(guò)上述程序代碼可以看出,棧的頂部和堆的底部是連接在一起的,在程序運(yùn)行中,當(dāng)發(fā)生進(jìn)棧操作時(shí)是向RAM的低地址方向存儲(chǔ)臨時(shí)變量。

而堆的作用是分配變量,向高地址方向分配RAM

的存儲(chǔ)空間。當(dāng)設(shè)計(jì)程序非常龐大時(shí),運(yùn)行過(guò)程中有可能會(huì)出現(xiàn)堆棧溢出的情況。STM32F4微控制器應(yīng)用

息峨業(yè)技◆系統(tǒng)啟動(dòng)文件*********************************FileName

:startup_stm32f40_41xxx.S*******************************************************************************指定當(dāng)前文件保持堆棧八字節(jié)對(duì)齊。指示編譯器將使用Thumb

指令集。在使用Thumb

具體指令前要使用該指令進(jìn)行聲明。PRESERVE8THUMB/////1///1/////STM32F4微控制器應(yīng)用

息峨業(yè)技◆系統(tǒng)啟動(dòng)文件*********************************File

Name:startup_stm32f40_41xxx.S*******************************************************************************/////1/1/111//11//11///1///1///11//AREARESET,DATA,READONLYEXPORT

VectorsEXPORT

Vectors_EndEXPORT

Vectors_Size//1//////11///////1///////1///////11定義了一個(gè)名為“RESET”

的數(shù)據(jù)段,并設(shè)置為只讀屬性,通過(guò)

“EXPORT”

將標(biāo)號(hào)“_Vectors”

、“_Vectors_End”、“_Vectors_Size”聲明為全局量,可供其他源文件訪問(wèn)。DCD

偽指令在RAM中分配了連續(xù)的存儲(chǔ)空間并

進(jìn)行了初始化設(shè)置。>分配了連續(xù)字節(jié)的存儲(chǔ)空間,并進(jìn)行了初始化

設(shè)置,初始化值為“_initial_sp”,“_initial_sp”標(biāo)號(hào)代表了地址值?!癬Vectors”

標(biāo)號(hào)也同樣代表了當(dāng)前數(shù)據(jù)段在RAM

中的地址值。>

標(biāo)

號(hào)

_Vectors_End”

表示了上述分配空間結(jié)

束后的地址值。標(biāo)號(hào)“_Vectors_Size”代表了

分配的向量空間的總字節(jié)數(shù)。DCD

NMI_Handler;NMIHandlerDCD

FPU_IRQHandler;FPU_Vectors_End

Vectors_SizeEQU

Vectors_End-

VectorsSTM32F4微控制器應(yīng)用

息峨業(yè)技◆系統(tǒng)啟動(dòng)文件*************************************File

Name

:startup_stm32f40_41xxx.S*******************************************************************************_VectorsDCD

_initial_spDCD

Reset_Handler;Top

of

Stack;ResetHandler.text|,CODE,READONLYReset_HandlerEXPORTReset_HandlerIMPORT

SystemInitIMPORTLDR

RO,=SystemInitBLXLDR

RO,=

mainBX

RO[WEAK]分配了名為“

|

.text|”只讀的程序存儲(chǔ)空間段“PROC”和

“ENDP”構(gòu)成了一個(gè)過(guò)程,相當(dāng)于定義了一個(gè)函數(shù),在”PROC”與“ENDP”

之間的代碼構(gòu)成了一個(gè)子程序的內(nèi)容,”PROC”與

“ENDP”

成對(duì)出現(xiàn)。ENDPSTM32F4微控制器應(yīng)用

息峨業(yè)技◆系統(tǒng)啟動(dòng)文件*********************************File

Name

:startup_stm32f40_41xxx.S*******************************************************************************/////////////////////////////////////////////,AREA

|.text|,CODE,READONLYReset_HandlerPROCEXPORTReset_Handler

[WEAK]IMPORT

SvstemInitIMPORT

mainLDR

RO,=SvstemInitBLX

ROLDR

RO,=

mainBX

ROENDP'/1111//////1111111111111//11/11111111111111/1,STM32F4微控制器應(yīng)用◆系統(tǒng)啟動(dòng)文件*********************************File

Name

:startup_stm32f40_41xxx.S*******************************************************************************標(biāo)號(hào)Reset_Handler相當(dāng)于函數(shù)名,對(duì)應(yīng)了這段程序的首地址。EXPORT用于聲明,聲明Reset_Handler

標(biāo)號(hào)為全局標(biāo)號(hào),其它源文件

可以訪問(wèn)。[WEAK]

用于指示如果有其它源文件定義Reset_Handler

標(biāo)號(hào),則屏蔽

掉此處的聲明。STM32F4微控制器應(yīng)用

息峨業(yè)技◆系統(tǒng)啟動(dòng)文件File

Name

:startup_stm32f40_41xxx.S*******************************************************************************AREA

|.text|,CODE,READONLYReset_HandlerPROCEXPORT

Reset_Handler

[WEAK]IMPORTSystemInitIMPORT

mainLDR

RO,=SvstemInitBLX

ROLDR

RO,=

mainBX

ROENDP/1111//////1111111111111//11/11111111111111/1,通知編譯器使用其它源文件中的“SystemInit”、“_m

ain”標(biāo)號(hào)。'AREA

|.text|,CODE,READONLYReset_HandlerPROCEXPORTReset_Handler

[WEAK]IMPORT

SystemInitIMPORT

mainLDR

RO,=SvstemInitBLX

ROLDR

RO,=

mainBX

ROENDP'/1111//////1111111111111//11/11111111111111/1,◆系統(tǒng)啟動(dòng)文件File

Name

:startup_stm32f40_41xxx.S*******************************************************************************STM32F4微控制器應(yīng)用將

“SystemInit”標(biāo)號(hào)對(duì)應(yīng)的值寫入內(nèi)部寄存器RO

中。息峨業(yè)技STM32F4微控制器應(yīng)用

息峨業(yè)技◆系統(tǒng)啟動(dòng)文件File

Name

:startup_stm32f40_41xxx.S*******************************************************************************AREA

|.text|,CODE,READONLYReset_Handler

PROCEXPORT

Reset_Handler

[WEAK]IMPORT

SystemInitIMPORT

mainLDRRO,=SvstemInitBLXROLDR

RO,=

mainBX

ROENDP'/1111//////1111111111111//11/11111111111111/1,跳轉(zhuǎn)到寄存器RO內(nèi)容對(duì)應(yīng)的地址處執(zhí)行子程序,并將指令切換回ARM指令集。STM32F4微控制器應(yīng)用

息峨業(yè)技◆系統(tǒng)啟動(dòng)文件File

Name

:startup_stm32f40_41xxx.S*******************************************************************************定義了標(biāo)號(hào)名稱為NMI_Handler的子程序,ENDP:

表示程序的結(jié)束,[WEAK]:該段程序的定義為弱定義方式,其它源文件定義了

“NMI_Handler”

函數(shù)則屏蔽掉此處的聲明。NMI_Handler

PROCEXPORTNMI_Handler

BENDP//////1/////1//1////////1////////////////1[WEAK]KEILTools

byARMμVision°5Integrated

Development

EnvironmentKEIL

is

a

trademark

and

pVision

is

a

registered

trademark

ofARM

Ltd.All

rights

reserved.This

product

is

protectedby

USand

internationallaws.圖2-4

MDK5啟動(dòng)界面結(jié)

業(yè)

1

8

學(xué)

說(shuō)MDK,源自于德國(guó)的KEIL公司,是ARM

公司推出的針對(duì)STM32F4微控制器應(yīng)用◆

MDK簡(jiǎn)介Keil

MDK,也稱MDK-ARM、Realview各種嵌入式處理器的軟件開發(fā)工具。STM32F4微控制器應(yīng)用

業(yè)

1

8

學(xué)

說(shuō)◆

MDK簡(jiǎn)介MDK,源自于德國(guó)的KEIL公司,是ARM公司推出的針對(duì)Arm

C/C++CompilerWithsafetyqualificationKeilMDK,也

稱MDK-ARM

、Realview各種嵌入式處理器的軟件開發(fā)工具。DeviceStartupDevice

HALCMSIS

DriversCMSISCMSIS-CoreCMSIS-DSPCMSIS-RTOSGraphicsMbed

TLSSSL/TLSsecurityloTconnectorsMDK-CoreμVisionIDE&debuggerwithpack

managementNetwork

IPv4/Pv6USBHost/DeviceFile

System圖2-5

MDK5的組成SofwarePacksMDKToolsMDK-MiddlewareSTM32F4微控制器應(yīng)用◆

MDK簡(jiǎn)介Keil

MDK,也稱MDK-ARM

、Realview

MDK,源自于德國(guó)的KEIL公司,是ARM公司推出的針對(duì)各種嵌入式處理器的軟件開發(fā)工具。MDK5

下載網(wǎng)址:https://www.keil.com/demo/eval/arm.htmARM.CMSIS.5.8.0

pack

安裝包和Keil.STM32F4xx_DFP.2.16.0.pack安裝包下載網(wǎng)址:https://www.keil.com/dd2/Pack/#!#eula-containerWMDK安裝教程本節(jié)總結(jié)1.STM32F4

單片機(jī)的官方標(biāo)準(zhǔn)固件庫(kù)下載2.CMSIS標(biāo)準(zhǔn)3.STM32F4

官方標(biāo)準(zhǔn)固件庫(kù)包4.STM32F4

單片機(jī)的關(guān)鍵配置文件5.系統(tǒng)啟動(dòng)文件6.MDK

簡(jiǎn)介STM32F4微控制器應(yīng)用STM32F4

微控制器應(yīng)用

江薛糾息峨業(yè)技任務(wù)2.2新建STM32F4

單片機(jī)項(xiàng)目工程【知識(shí)目標(biāo)】◆掌握使用MDK新建STM32F4設(shè)計(jì)項(xiàng)目的流程?!灸芰δ繕?biāo)】◆能夠在MDK中成功創(chuàng)建一個(gè)全新的STM32F4單片機(jī)項(xiàng)目工程?!裟軌蚋鶕?jù)項(xiàng)目需求,在STM32項(xiàng)目中精準(zhǔn)配置相應(yīng)STD庫(kù)文件和編譯選項(xiàng)。【素質(zhì)目標(biāo)】◆培訓(xùn)系統(tǒng)學(xué)習(xí)能力。◆培養(yǎng)查閱設(shè)計(jì)資料的能力。◆培養(yǎng)分析問(wèn)題解決問(wèn)題的能力。STM32F4微控制器應(yīng)用本節(jié)學(xué)習(xí)內(nèi)容:1.

創(chuàng)建項(xiàng)目工程并配置項(xiàng)目參數(shù)

6.項(xiàng)目頭文件路徑配置2.在項(xiàng)目中添加配置文件

7.

設(shè)置輸出選項(xiàng)3.在項(xiàng)目中添加自定義延時(shí)文件和自定義系統(tǒng)文件

8.

設(shè)置下載/調(diào)試選項(xiàng)4.

添加并配置標(biāo)準(zhǔn)庫(kù)文件9.

配置系統(tǒng)時(shí)鐘參數(shù)5.啟動(dòng)文件配置

10.

單片機(jī)項(xiàng)目編譯STM32F4微控制器應(yīng)用

信息職業(yè)技術(shù)

學(xué)

說(shuō)準(zhǔn)備工作:1.

下載STM32F4固件庫(kù)包并解壓縮,如圖所示:

STM32F4xx固件庫(kù)>

STM32F4xx_DSP_StdPeriph_Lib_V1.4.0

htmrescLibrariesProjectUtilities2

MCD-ST

LibertySW

LicenseAgreementV2.pdfeReleaseNotes.html?

stm32f4xxdspstdperiphlib

um.chm2.安裝好MDK5

□stm32f4xx

dsp

stdperiph

lib

um.chw3.安裝好STM32F4的器件包:Keil.STM32F4xx_DFP.1.0.8.pack>此電腦新加卷(E:)>STM32F407ZGT6Template名稱LCOREFWLIBLHAREWAREOBJSYSTEMUSER修改日期2022/2/1021:372022/2/1021:372022/2/1021:382022/2/1021:372022/2/1021:372022/2/1021:37類型文件夾文件夾文件夾文件夾文件夾文件夾1.

創(chuàng)建項(xiàng)目工程并配置項(xiàng)目參數(shù)1)首先在電腦的硬盤上創(chuàng)建一個(gè)文件夾用來(lái)存放工程模板,并在該文件夾下新建6個(gè)文件夾,如圖2-5所示。STM32F4微控制器應(yīng)用江

線息

峨業(yè)技圖2-5新建模板的窗口學(xué)院STM32F4微控制器應(yīng)用1.創(chuàng)建項(xiàng)目工程并配置項(xiàng)目參數(shù)2)打開MDK

軟件,執(zhí)行Project\New

μVision

Project…菜單命令,并將工程路徑選擇為新建的模板文件下的USER,

并保存工程名為template

。Select

Device

for

Target

Target

1..Device|在彈出的窗口中選擇器件,如圖2-6所示:

Software

PacksSTMicroelectronics將器件選擇為:STMicroelectronics/STM4Series/STM32F407/STM32F407ZG/STM32F407ZGTx圖2-6新建項(xiàng)目選擇器件1.創(chuàng)建項(xiàng)目工程并配置項(xiàng)目參數(shù)單擊OK后,在彈出的如圖2-7所示的“ManageRun-TimeEnvironment”對(duì)話框中選擇Cancel。操作完成后,USER文件夾下文件如圖2-8所示。STM32F4微控制器應(yīng)用

江薛紡息8ManagePum-TimeErmkormemSstwareComporaenm◆

feard

SopCMSs◆

cMSS

Diar◆

CompierDeic◆

Fe

Sstem◆

Grapl◆GrapeiesDspiay◆Netner◆

UsBSetVaruntARMComplerwersionDeloiptionSTMgnestronict

324691DSCOMRYEněad

Delca

Dan

soento

CMSS1.6.0

CoepleEtenostouARMCcmplk

5and6.13.0DeABMSodfaronsCamgle6MDK-PusMDKPus5.50.0

UsrI-tefceongrapialLCDdspDuplayIntertace

indusng

chguratentoremWN7.12.0

B4NetnorkingusngEithemetorsalalprgtoc幽USBCemmunsason

satrisus&rice

dadanie

otput

DealynionBaalw

sletFackDetailCKCancel此電腦,新加卷(E:)>STM32F407ZGT6Template>USER名稱DebugConfigListingsObjects□template.uvoptxWtemplate.uvprojx修改日期2022/2/1022:032022/2/1022:112022/2/1022:112022/2/1022:032022/2/1022:03圖2-7

“Manage

Run

Environment”

對(duì)話框

圖2-8

USER目錄下的文件2.在項(xiàng)目中添加配置文件1)將stm32f4_dsp_stdperiph_lib_V1.8.0\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\STM32F4xx_StdPeriph_Drive

目錄下的inc

、src

文件夾復(fù)制到新建模板目錄下的FWLIB

文件夾下

。固件庫(kù)中src為驅(qū)動(dòng)STM32F4的庫(kù)函數(shù)文件。inc則是這些庫(kù)文件對(duì)應(yīng)的頭文件。2)將與內(nèi)核和啟動(dòng)相關(guān)的文件復(fù)制到模板文件夾下的core文件夾內(nèi)。將stm324_dsp_stdperiph_lib_V1.8.0\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\

ST\STM32F4xx\Source\Templates\arm

目錄下的startup_stm32f40_41xxx.S啟動(dòng)文件復(fù)制到CORE文

件夾內(nèi)。將stm32f4_dsp_stdperiph_lib_V1.8.0\Libraries\CMSIS\Include

目錄下的core_cm4.h、core_cmsimd.h

、core_cmFunc.h

、core_cmInstr.h

復(fù)制到CORE文件夾內(nèi)。STM32F4微控制器應(yīng)用江

薛紡息2.在項(xiàng)目中添加配置文件3

)

將stm32f4_dsp_stdperiph_lib_V1.8.0\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include目錄下的stm32f4xx.h、system_stm32f4xx.h文件

復(fù)制到USER目

錄下。4

)

將stm32f4_dsp_stdperiph_lib_V1.8.0\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates

目錄下的main.c、

main.h、stm32f4xx_conf.h、system_stm32f4xx.c、stm32f4xx_it.c、stm32f4xx_it.h文件復(fù)制到STM32F4微控制器應(yīng)用信

業(yè)

術(shù)

學(xué)

說(shuō)USER文件夾下。>此電腦>新加卷(E:)

STM32F407ZGT6Template

USER名稱DebugConfigListingsObjectsmain.cmain.hstm32f4xx.hstm32f4xx_conf.hstm32f?xx_it.cstm32f4xx_it.hsystem_stm32f4xx.csystem_stm32f4xx.htemplate.uvoptxWtemplate.uvprojx修改日期2022/2/1022:032022/2/1022:112022/2/1022:11

2016/11/92:192016/11/92:19

2016/11/723:03

2016/11/92:192016/11/92:192016/11/92:192016/11/92:19

2016/11/723:03

2022/2/1022:032022/2/1022:03STM32F4微控制器應(yīng)用2.在項(xiàng)目中添加配置文件文件復(fù)制后的user

文件夾如圖2-9所示。圖2-9USER文件夾STM32F4微控制器應(yīng)用

江薛公息峨業(yè)技影學(xué)院3.在項(xiàng)目中添加自定義延時(shí)文件和自定義系統(tǒng)文件在system

文件夾內(nèi)新建兩個(gè)文件夾delay

、sys,如圖2-12所示。圖2-12新建sys、delay文件夾在MDK

界面執(zhí)行菜單命令File\New

命令,新建文件分別保存在delay文件中和sys文件夾中:>

delay

文件夾中保存的文件名為delay.c和delay.hsys文件夾中保存為sys.c和sys.h此電腦新加卷(E:)>STM32F407ZGT6TemplateSYSTEM>^名稱delaysys修改日期2022/2/1122:542022/2/1122:54類型文件夾文件夾在STM32

編程過(guò)程中經(jīng)常會(huì)使用到調(diào)用毫秒級(jí)和微秒級(jí)的延時(shí)函數(shù)

,一般使用STM32

單片機(jī)內(nèi)部的滴答定時(shí)器來(lái)設(shè)計(jì)實(shí)現(xiàn)毫秒、微妙延時(shí)功能,因此用戶可以自己編寫滴答定時(shí)器的驅(qū)動(dòng)程序。#include“sys.h”#include"stm32f4xx.h"static

u8fac_us=0;static

u16fac_ms=0;*函數(shù)功能:延時(shí)初始化*參數(shù)

:SYSCLK

系統(tǒng)時(shí)鐘,單位MHz*返回值:無(wú)//us

延時(shí)倍乘數(shù)//ms

延時(shí)倍乘數(shù)本模板中的延時(shí)驅(qū)動(dòng)函數(shù)保存在delay.cvoiddelay_Init(u8SYSCLK)文件中,對(duì)應(yīng)的頭文件為delay.h。STM32F4微控制器應(yīng)用3.在項(xiàng)目中添加自定義延時(shí)文件和自定義系統(tǒng)文件//1//////I///////II/1I//////delay

.c

文件開始////

II//////////////1I//////////打

開delay.c文件,錄入代碼內(nèi)容并保存。

SysTick

CLKSourceConfig(SysTick

CLKSource

HCLK_Div8);

//滴答定時(shí)器工作時(shí)鐘為

AHB

時(shí)鐘的1/8fac_us=SYSCLK/8;facms=(u16)fac_us*1000;//微秒級(jí)延時(shí)初值//毫秒級(jí)延時(shí)初值在STM32

編程過(guò)程中經(jīng)常會(huì)使用到調(diào)用毫秒級(jí)和微秒級(jí)的延時(shí)函數(shù),通常會(huì)使用

STM32

單片機(jī)內(nèi)部的滴答定時(shí)器來(lái)設(shè)計(jì)實(shí)現(xiàn)毫秒、微妙延時(shí)功能,因此用戶可以自己編寫滴答定時(shí)器的驅(qū)動(dòng)程序。本模板中的延時(shí)驅(qū)動(dòng)函數(shù)保存在delay.c

文件中,對(duì)應(yīng)的頭文件為delay.h。打開delay.c文件,錄入代碼內(nèi)容并保存。*函數(shù)功能:微秒級(jí)延時(shí)*參

數(shù):延時(shí)

nus

個(gè)1us*限制條件:nus<=798915*返回值:無(wú)voiddelay_us(u32

nus)u32temp;SysSTick->LOAD=nus*facus;SxsSTick->VAL=0x00;SysTick->CTRLI=SysTick_CTRL_ENABLEMsk;dotemp=SysTick->CTRL;}while((temp&0x01)&!(temp&(1<<16)));SxsTick->CTRLB=^SysTick_CTRLENABLE_Msk;SxsTick->VAL=0X00;STM32F4微控制器應(yīng)用3.在項(xiàng)目中添加自定義延時(shí)文件和自定義系統(tǒng)文件//時(shí)間加載//清空計(jì)數(shù)器//開始倒數(shù)//等待時(shí)間到達(dá)//關(guān)閉計(jì)數(shù)器//清空計(jì)數(shù)器在STM32

編程過(guò)程中經(jīng)常會(huì)使用到調(diào)用毫秒級(jí)和微秒級(jí)的延時(shí)函數(shù),通常會(huì)使用STM32

單片機(jī)內(nèi)部的滴答定時(shí)器來(lái)設(shè)計(jì)實(shí)現(xiàn)毫秒、微妙延時(shí)功能,因此用戶可以自己編寫滴答定時(shí)器的驅(qū)動(dòng)程序。本模板中的延時(shí)驅(qū)動(dòng)函數(shù)保存在delay.c

文件中,對(duì)應(yīng)的頭文件為delay.h。打開delay.c文件,錄入代碼內(nèi)容并保存。*函數(shù)功能:毫秒級(jí)延時(shí)*參數(shù):延時(shí)

nms個(gè)1ms*先決條件:*返回值:無(wú)void

delay_ms(u16

nms)u32

temp;SysTick-)LOAD=(u32)nms*facms;SysTick->VAL=0x00;SySTick->CTRLI=SysTick_CTRL_ENABLEMsk;do{temp=SysTick->CTRL;}while((temp&0x01)&&!(temp&(1<<16)));SxSTick->CTRLB=~SxsTick_CTRLENABLEsk;SxsTick->VAL

=0x00;STM32F4微控制器應(yīng)用3.在項(xiàng)目中添加自定義延時(shí)文件和自定義系統(tǒng)文件//時(shí)間加載//清空計(jì)數(shù)器//開始倒數(shù)//等待時(shí)間到達(dá)//關(guān)閉計(jì)數(shù)器//清空計(jì)數(shù)器STM32F4微控制器應(yīng)用3.在項(xiàng)目中添加自定義延時(shí)文件和自定義系統(tǒng)文件打

開delay.h

文件,錄入如下代碼并保存。

delay.h

對(duì)delay.c

中定義的函數(shù)進(jìn)行了聲明,包

了delay.h

頭文件的源文件可以使用delay.h

中聲明過(guò)的函數(shù)。#ifndef

DELAY_H#define

DELAY_H#include"stm32f4xx.h"voiddelay_Init(u8

SYSCLK);void

delay_ms(u16

nms);void

delay_us(u32nus);#endif//延時(shí)初始化函數(shù)聲明//毫秒級(jí)延時(shí)函數(shù)聲明//微秒級(jí)延時(shí)函數(shù)聲明3.在項(xiàng)目中添加自定義延時(shí)文件和自定義系統(tǒng)文件打開sys.h文件,并錄入代碼并保存。sys.h

文件定義了STM32F4

的IO

口輸入讀取宏定義和輸出宏定義,在編程操作時(shí)通過(guò)有參宏的使用能夠直(GPIOC_BASE+20)//0z40020814接讀取、設(shè)置I/O端口的引腳電平,為程序設(shè)計(jì)提供了方便。(GPIOH_BASE+20)//0z40021C14(GPIOI_BASE+20)//0x40022014創(chuàng)建用戶自己的系統(tǒng)文件(GPIOB_BASE+16)//0x40020410sys.c,并保存在sys文件夾內(nèi)。用戶可以將自己創(chuàng)建的系統(tǒng)函(GPIOG_BASE+16)//0z40021810數(shù)保存在sys.c文件內(nèi)。#define

PAout(n)BIT_ADDR(GPTOA_ODRAddr,n)/輸出映射PAin(n)BIT_ADR(GPIOA_IDRAddr,n)PBout(n)BIT_ADDR(GPTOB_ODRAdr,n)PBin(n)BIT_ADDR(GPIOB_IDRAdr,n)PCout(n)BIT_ADDR(GPTOC_ODRAdr,n)PCin(n)

BIT_ADDR(GPTOC_IDR_Addr,n)PDout(n)BIT_ADDR(GPTOD_ODR_Addr,n)PDin(n)BIT_ADDR(GPIOD_IDR

Addr,n)PEout(n)

BIT_ADDR(GPIOE_0DR_Addr,n)PEin(n)BIT_ADDR

GPIOE_IDR

Addr,n)PFout(n)BITADDR(GPIOF_ODR_Addr,n)PFin(n)

BIT_ADDR(GPIOF_IDR_Addr,n)PGout(n)

BIT_ADDR(GPTOG_ODRAddr,n)PGin(n)BIT_ADDR(GPTOG_IDR

Adr,n)PHout(n)BIT_ADDR(GPTOHLODRAddr,n)PHin(n)BIT_ADDR(GPTOH_IDR

Adr,n)PIout(n)BIT_ADDR(GPIOI_0DR_Addr,n)PIin(n)BIT_ADDR(GPIOI_IDR_Addr,n)1//111WIII?//用戶設(shè)計(jì)源文件對(duì)應(yīng)的頭文件///1III/111/////1111//111//1/#include“delay.h”#endif/////11W?11111W/11111I/1/sys.h

文件結(jié)束//1///111111/1111111111I!///STM32F4微控制器應(yīng)用#define

GPIOA_ODRAddr#defineGPTOB_ODRAdar#defineGPTOC_ODRAdar#defineGPIOD_ODRAdar#defineGPIOE_ODRAddr#define

GPTOFODR

Addr#define

GPTOG_ODRAda#defineGPIOH_ODRAdar#defineGPIOI_ODRAdr#defineGPIOA_DRAdr#defineGPIOB_DRAddr#defineGPIOC_DRAdd#defineGPTOD_DRAddr#defineGPIOE_DRAddr#defineGPIOF_DRAdar#dofineGPIOG_DRAddr#defineGPIOH_DR

Ada#define

GPIOI_DR

AdirII

Is.b文件開始//|

#ifndef

_SYS_H#define_SYS_H#include

"stm32f4xx.h"/位帶操作//輸入映射//輸出映射//輸入映射//輸出映射//輸入映射//輸出映射//輸入映射//輸出映射//輸入映射//輸出映射//輸入映射//輸出映射//輸入映射//輸出映射//輸入映射//輸出映射//輸入映射&OxFF)<<5)+(bitnun<<2))#defineMEMLADDR(addr)*((volatileunsignedlong*)(addr))#defineBITADDR(addr,bitnum)MEMLADDR(BITBAD(addr,bitnun))//IO口地址映射,對(duì)輸入、輸出寄存器進(jìn)行定義#define#define#define#defineidefine#define#define#define#define#define#define#define#define#define#define#define#define(GPIOC_BASE+16)//0x40020810(GPIOD_BASE+16)//0z40020C10(GPIOE_BASE+16)//0z40021010(GPIOF_BASE+16)//0x40021410(GPIOD_BASE+20)//0z40020C14(GPIOE_BASE+20)//0x40021014(GPIOF_BASE+20)//0z40021414(GPIOG_BASE+20)//0x40021814(GPIOABASE+20)//0x40020014(GPIOB_BASE+20)//0z40020414(GPIOH_BASE+16)//0x40021C10(GPIOI_BASE+16)//0x40022010(GPIOA_BASE+16)//0x

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論