《智能光電系統(tǒng)設計》課件 項目4 STM32知識基礎(chǔ)_第1頁
《智能光電系統(tǒng)設計》課件 項目4 STM32知識基礎(chǔ)_第2頁
《智能光電系統(tǒng)設計》課件 項目4 STM32知識基礎(chǔ)_第3頁
《智能光電系統(tǒng)設計》課件 項目4 STM32知識基礎(chǔ)_第4頁
《智能光電系統(tǒng)設計》課件 項目4 STM32知識基礎(chǔ)_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目4STM32知識基礎(chǔ)任務目標1、學會并掌握STM32F40X的基礎(chǔ)架構(gòu)、時鐘系統(tǒng)、庫函數(shù)等2、學會KeilMDKARM軟件的使用。4.1STM32F40x系列芯片的系統(tǒng)架構(gòu)及總線STM32F40x系列芯片的總線結(jié)構(gòu)見圖4-1,該總線結(jié)構(gòu)是一個“CPU+外設”的系統(tǒng)。圖4-1STM32F40x系列芯片的總線結(jié)構(gòu)4.1STM32F40x系列芯片的系統(tǒng)架構(gòu)及總線原理上來說,除Cortex-M3內(nèi)核以及相關(guān)總線之外的單元,均可以被稱為外設(Peripherals),如通用輸入輸出端口(GeneralPurposeInput/OutputPort,GPIO)、數(shù)模轉(zhuǎn)換器(Analog-to-DigitalConverter,ADC)、通用同步/異步串行接收/發(fā)送器(UniversalSynchronous/AsynchronousReceiver/Transmitter,USART/UART)、定時器(Timer,TIM)、閃存(FLASH)、直接內(nèi)存訪問(DirectMemoryAccess,DMA)等。要使用相關(guān)外設,需要對外設相關(guān)的寄存器進行正確的配置,而后面要介紹的標準可,在配置寄存器方面具備很大的便利,減輕了學習者的工作量,降低了入門臺階。STM32內(nèi)核可通過AHB總線、AHB/APB橋控制外設,也可以通過DMA模塊,直接操作或讀取外設。4.2STM32F40x系列芯片的時鐘系統(tǒng)時鐘電路主要給CortexM3內(nèi)核及外設提供時鐘信號,時鐘信號對ARM就像心跳對人一樣重要。ARM內(nèi)部都是由許多諸如觸發(fā)器等構(gòu)成的時序邏輯電路組成的,只有通過時鐘才能驅(qū)動ARM一步步地工作。如果沒有時鐘信號,觸發(fā)器的狀態(tài)就不能改變,相應的電路就不能正常工作。另外,為了降低功耗,可以選擇性的打開需要使用的外設時鐘。4.2STM32F40x系列芯片的時鐘系統(tǒng)STM32F40x系列芯片的時鐘系統(tǒng)框圖見圖4-2,又稱時鐘樹。STM32F40x系列芯片的時鐘系統(tǒng)需要通過時鐘輸入、倍頻、分頻等實現(xiàn)對各部分的時鐘輸出。圖4-2STM32F407的時鐘樹

4.2STM32F40x系列芯片的時鐘系統(tǒng)STM32F40x有多個時鐘源,分別是高速外部時鐘(HighSpeedExternalClock,HSE)、低速外部時鐘(LowSpeedExternalClock,LSE)、高速內(nèi)部時鐘(HighSpeedInternalClock,HSI)、低速內(nèi)部時鐘(LowSpeedInternalClock,LSI)。HSE一般在4-26MHz之間,由外部晶體振蕩器提供,并經(jīng)鎖相環(huán)(PhaseLockedLoop,PLL)倍頻等處理后作為系統(tǒng)時鐘;LSE為也由外部晶體振蕩器提供,一般取32.768KHz,常用于實時時鐘(Real_TimeClock,RTC);HSI為16MHz,上電默認啟動,精度不高;LSI約30KHz,精度不高,一般用于看門狗定時器等。對時鐘源信號處置有切換、配置、倍頻、分頻等程序設計內(nèi)容。對系統(tǒng)時鐘的學習,學習者需要關(guān)注時鐘源、系統(tǒng)時鐘、相關(guān)外設時鐘等,這些通過軟件STM32CubeMX均可以輕松配置。4.3STM32標準庫、HAL庫、LL庫簡介嵌入式技術(shù)通過編寫程序來實現(xiàn)控制、測量、數(shù)據(jù)傳輸?shù)饶康?。嵌入式技術(shù)表現(xiàn)出來均是對芯片引腳的讀寫,但是根本上來說,則在于對嵌入式芯片內(nèi)部寄存器的讀寫,即向寄存器寫入數(shù)據(jù),或從寄存器讀出數(shù)據(jù)。編寫程序的過程,即是對寄存器的讀寫過程。有兩種方式可以實現(xiàn)對寄存器的操作,一是直接操作寄存器,一是通過庫函數(shù)操作寄存器。下面的程序是直接操作寄存器,讓PA0置1的例子。GPIOA->BSRR|=0x00000001;//直接操作寄存器,PA0置14.3STM32標準庫、HAL庫、LL庫簡介ST公司為開發(fā)者提供了非常方便的開發(fā)庫,主要有標準外設庫SPL(StandardPeripheralLibrary,SPL庫)、HAL庫(HardwareAbstractionLayer)、LL庫(LowLayer)三種。標準外設庫提供了很多的庫函數(shù),使用時只需要進行庫函數(shù)的調(diào)用即可,程序的編寫、維護效率很高;HAL庫基于一個配置軟件STM32CubeMX,類似于圖形化編程,在配置方面非常直觀形象,使用簡單,程序的可讀性很強,尤其是適合于初學者。LL庫也可以通過STM32CubeMX產(chǎn)生,更加的小型化,更加的精簡,只是硬件的覆蓋率還不是很高。下面提供引腳控制的幾個例子,以體現(xiàn)幾種編程方式的差異:GPIO_SetBits(GPIOA,GPIO_Pin_0);//SPL庫,PA0置1HAL_GPIO_WritePin(GPIOA,GPIO_Pin_0,GPIO_PIN_SET);//HAL庫,PA0置1LL_GPIO_SetOutputPin(GPIOA,GPIO_PIN_0);//LL庫,PA0置14.3STM32標準庫、HAL庫、LL庫簡介相對而言,標準外設庫開發(fā)最早,也較為成熟,因此本書的開發(fā)均采用標準庫。HAL庫具有輕便、易使用、可讀性強、硬件覆蓋率高等特點,有興趣的同學可以自己依據(jù)二維碼開發(fā)使用。圖4-3STM標準庫圖4-3顯示的是STM32標準庫的結(jié)構(gòu),其中Libraries是最重要的一個目錄,該目錄包含了庫函數(shù)與啟動文件等,是標準庫的實體部分。Libraries文件夾下又有兩個子文件夾:CMSIS和STM32F10x_StdPeriph_Driver。CMSIS子目錄:CMSIS子目錄是STM32F10x的內(nèi)核庫目錄,核心子目錄為CM3,其余目錄可忽略。CM3下又有兩個子目錄:CoreSupport和DeviceSupportCoreSupport子目錄:內(nèi)有2個重要文件,一個是core_cm3.c(內(nèi)核通用源文件),另一個是core_cm3.h(內(nèi)核通用頭文件)。上述文件位于CMSIS核心層的核內(nèi)外設訪問層,由ARM公司提供,包含用于訪問內(nèi)核寄存器的名稱、地址定義等內(nèi)容。4.4STM32F407ZGT6的端口、引腳、外設STM32F407ZGT6有144個引腳,有PA、PB、PC、PD、PE、PF、PG共7個完整的端口,這7個完整的端口共有16*7=112個獨立引腳。以PA端口為例,有PA0—PA15共16個引腳。打開STM32F407的文檔,可以看到引腳說明,如查找USART1關(guān)鍵詞,可以找到如圖4-4所示的引腳描述,即PA9可以是普通的引腳,也具有第二功能,即可以是USART1的發(fā)送引腳;PA9還有第三功能,可以是TIM1的脈沖編碼調(diào)制(PulseWidthModulation,PWM)信號輸出引腳之一。PA9還有其他的功能。

圖4-4STM32F407ZGT6的USART1引腳4.4STM32F407ZGT6的端口、引腳、外設其他的引腳也有類似的功能,即有第一、第二等功能。在不同功能間期切換,稱為引腳的復用,可通過編程實現(xiàn)。STM32F407的端口和引腳還有一個稱謂,即通用輸入輸出,英文縮寫為GPIO,因此,PA等同于GPIOA,PB等同于GPIOB,PA0等同于GPIOA.0,PC10等同于GPIOC.10,依次類推。STM32的所有GPIO引腳都可以配置成輸入或輸出模式。輸入模式又分為模擬輸入、浮空輸入、上拉輸入、下拉輸入;輸出模式又分為推挽輸出、開漏輸出、推挽式復用功能、開漏復用等。STM32F407ZGT6有6個串口,分別是USART1-3、USART6、UART4-5;STM32F407ZGT6有14個定時器,即TIM1-TIM14;STM32F407ZGT6有三個ADC,即ADC1-3,其他外設可查找資料去了解。4.5KeilMDK編程軟件介紹本書采用MDK集成開發(fā)工具,使用的版本是KEILMDK5.24(以下簡稱Keil)。Keil軟件可在Keil官網(wǎng)下載并安裝。安裝成功Keil后,還需要安裝STM的器件包,比如“Keil.STM32F1xx_DFP.1.1.0.pack”等。為了下載程序到開發(fā)板,需要安裝ST-LINK仿真器驅(qū)動,或者JTAG仿真驅(qū)動(JLink/JTrace)。如果要進行串行通訊,還需要安裝CH340或CP2102等串口驅(qū)動。安裝完成后,可以新建或打開一個現(xiàn)有的工程,如圖4-5。圖4-5工程界面4.5KeilMDK編程軟件介紹在工程的左邊是工程欄,右邊會顯示每個文件中的內(nèi)容,例如雙擊工程中的main.c文件,就會在右邊顯示這個文件的內(nèi)容,見圖4-5。點擊圖4-5左上角標記為①的編譯按鈕(Bulid),就會開始編譯,并在BuildOutput區(qū)顯示編譯結(jié)果,例如“……0Error(s),0Warning(s)”,表示0個錯誤和0個警告。如有錯誤,則需要排除掉錯誤后再下載程序。項目小結(jié)本項目介紹了STM公司的一款ARM芯片大類STM32F4

溫馨提示

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

評論

0/150

提交評論