STM32F407運(yùn)用總結(jié)x_第1頁
STM32F407運(yùn)用總結(jié)x_第2頁
STM32F407運(yùn)用總結(jié)x_第3頁
STM32F407運(yùn)用總結(jié)x_第4頁
STM32F407運(yùn)用總結(jié)x_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、STM32運(yùn)用總結(jié)主要分為IO 口,定時(shí)器的 PWM和QEI,屮斷,ADC , DAC和DMA 介紹。在STM32的 運(yùn)用屮第一步一般是使能相應(yīng)模塊的時(shí)鐘,然后配置IO 口,最后配置相應(yīng)的寄存器。1. IO 口STM32的IO 口非常多,而且與其它外設(shè)模塊通常是復(fù)用的。在不同的外設(shè)屮IO 口的設(shè)置是不一樣的。這一部分介紹普通的數(shù)值IO 口。IO 口有AG共7組,每組 16 口。1. IO 口在時(shí)鐘總線A HB1上,使能對應(yīng)端口的時(shí)鐘。在寄存器RCC-AHB1ENR中。2. 配置IO 口的模式,普通的IO 口配置為普通的輸入輸出模式。配置I 0 口是懸空還是上拉或者下拉。以上兩步分別在寄存器GP

2、IOxMODER和GPIOx PUPDR(x=A,B,C,D,E,F,G )3. 其中配置為輸出模式時(shí)還要設(shè)置速度和相應(yīng)的輸出方式,開漏或者推挽,以上兩步分別在寄存器 GPIOx - OSPEEDR 和 GPIOx -OTYPER (x=A,B,C,D,E,F,G )。4. 設(shè)置IO 口的高低電平。在寄存器GPIOxBSRRH中置相應(yīng)的位為1就是將相應(yīng)的位置0,在寄存器 GPIOx -BSRRL屮置相應(yīng)的位為1就是將相應(yīng)的位置 1另外 還可以設(shè)置GPIOx.ODR寄存器來設(shè)置輸出電平以及讀取GPIOx_IDR寄存器來獲取輸入電平。2. PWMSTM32的定時(shí)器也非常Z多,用到的主要是兩個(gè)部分:

3、用定時(shí)器產(chǎn)生PWM和定時(shí)觸發(fā)ADC ,這里一部分介紹 PWM o (高級定時(shí)器的配置和這差不多,由于在 STM32F103 里面已經(jīng)嘗試過在 STM32F407里面就沒有再寫)1. 配置IO 口。我們說過STM32的外設(shè)模塊主要是和IO 口復(fù)用的,因此在使用外設(shè)模塊時(shí) 首先配置好相應(yīng)的IO 口。比如使用A 口的PA1作為定時(shí)器Timer2的PWM 輸出。則應(yīng)按照如下的步驟來配置PAlo1)使能A 口的時(shí)鐘。在寄存器RCC-AHB1ENR中。2)配置PA1為復(fù)用功能。在寄存器GPIOA-MODER中。3)配置PA1的上拉下拉或者懸空。在寄存器GPIOA-PUPDR中。4)酉己置PA1的速度。在

4、GPIOAOSPEEDR中。5)配置PA1的復(fù)用功能是和Timer2對應(yīng)的。在GPIOA-AFR0中。(相對應(yīng)的復(fù) 用對應(yīng)表數(shù)據(jù)手冊上有)。2. 配置定時(shí)器模塊1)使能相應(yīng)的定時(shí)器模塊時(shí)鐘(注意不同的定時(shí)器在不同的時(shí)鐘總線上)。Timer? 在APB1總線上。所以在RCC-APB1ENR中使能Timer2.2)設(shè)置定時(shí)器的預(yù)分頻系數(shù),周期值。在寄存器 TIMx -PSC和TIMxARR屮設(shè)置(對應(yīng)不同的寄存器x取不同的值,比如用Timer2 ,則x=2 )。3)軟件產(chǎn)生一次更新事件將剛才設(shè)置的值導(dǎo)入到周期寄存器中。在TIMx -EGR中設(shè)置。4)使能自動重裝載功能與否,使能相應(yīng)的事件,配置計(jì)數(shù)

5、方式。在TIMx -CR1中設(shè)置。5)配置Timer2的捕獲比較通道。共有四路捕獲比較通道,我們這里用的是CC2通道。將CC2配置為輸出比較模式( OC) , PWM2方式,預(yù)裝載使能等。在TIMx CCMR1 ( CC1/OC1 和 CC2/OC2 )和 TIMx CCMR2 ( CC3/OC3 和 CC4/OC4 ).6)設(shè)置匹配值,用來控制占空比。在 TIMxCCR2中。7)使能輸出比較使能或者比較捕獲功能。在TIMxCCER中。8)清空計(jì)數(shù)值。TIMx -CNT=O o9)使能計(jì)數(shù)。在TIMx -CR1中。注意把這一項(xiàng)放在最后寫,否者會由于寄存器之 間的互鎖寫保護(hù)產(chǎn)生一些問題。3. Q

6、EIQEI的使用主要是對照著數(shù)據(jù)手冊上的說明來,具體沒有什么多說的。程序里面有詳細(xì)的注釋。4. 中斷系統(tǒng)STM32的中斷主要設(shè)置中斷優(yōu)先級的配置,中斷服務(wù)函數(shù)的命名,以及中斷服務(wù)函數(shù) 的處理等幾個(gè)方面。在STM32的中斷系統(tǒng)中有搶占優(yōu)先級和次占(響應(yīng))優(yōu)先級的概念。其中數(shù)值越低代表優(yōu)先級越高。高優(yōu)先級的搶占可以打斷低優(yōu)先級的搶占。同優(yōu)先級的搶占屮,不同的次占(響應(yīng))優(yōu)先級不可以相互打斷,次占(響應(yīng))只是表示同時(shí)發(fā)生時(shí)先執(zhí)行優(yōu)先級高的次占。搶占優(yōu)先級和次占(響應(yīng))優(yōu)先級共占有4位,可以根據(jù)不同的設(shè)置來改變搶占優(yōu)先級的次占(響應(yīng))優(yōu)先級的位數(shù),一個(gè)程序中搶占優(yōu)先級的次占(響應(yīng))優(yōu)先級的位數(shù)的設(shè)置只

7、能有一次,且不能再改變。搶占優(yōu)先級和次占(響應(yīng))優(yōu)先級的配置之前要寫入一個(gè)合適的序列才能實(shí)現(xiàn)配置。在SCB-AIRCR 寄存器中先寫入0X05FA0000 ,然后根據(jù)下表中SCB-AIRCR10:8位數(shù)值的不同來配置搶占和次占(響應(yīng))的位數(shù)。例如 SCB-AIRCR =0x05FA0000 I 0x400 ,表示搶占 3為,次占(響應(yīng))1位。(10:&| |分割威拾占優(yōu)先fit位單iia優(yōu)先檢也搶占優(yōu)先齟馥b611KXJCXIMnon*16ftOblOOR:5wa2OblOl網(wǎng)網(wǎng)144ObllOx-m2aObi 11noneI【7:411161. 配置相應(yīng)的屮斷優(yōu)先級。首先要找到相應(yīng)的屮斷的I

8、P號(即在啟動文件中的入口地址,如下圖所示第一個(gè)為0,依次往后面數(shù)即可,在數(shù)據(jù)手冊上也給出來了)c然后在寄存器NVICIPn屮配置優(yōu)先級,該寄存器共8位,其中低四位已被清0, 不給用戶使用,我們使用的是高四位。比如DMA2 -Stream0的中斷優(yōu)先級配置:NVIC -IP56=0xB0。OCIQIPPIL ppp 廠PL- #產(chǎn)彼只才尸處如* 產(chǎn)蘆*“女 CF.EE:呼丘ICEEZUKEIII 藍(lán)FT巴EEE:Ha-3ss r = m 二一 霍bff NEW它Km 口口 mL3r口AQ&Q aQa 二 j e -IQXXX T 龍匕匚 Hl 心_二 口円mu丄丄X3. 屮斷服務(wù)函數(shù)的命名。在

9、上圖中的啟動文件里面也可以看到相關(guān)屮斷服務(wù)函數(shù)的命 名的規(guī)則。就將相應(yīng)的名稱抄寫下來即可。若要改名字,則也要改動啟動文件。4. 使能相應(yīng)的屮斷源使能位和NVIC與之對應(yīng)的屮斷使能位。 NVIC ISER0:2共三個(gè),每個(gè)32位,對應(yīng)IP號從081的中斷。比如 IP號為56的在NVIC -ISER1 的(56-32)位。5. 屮斷服務(wù)函數(shù)的處理。進(jìn)入屮斷服務(wù)函數(shù)首要的任務(wù)是將不能硬件清除屮斷標(biāo)志位 的中斷,清除其標(biāo)志位。然后進(jìn)行相應(yīng)的處理,有必要關(guān)中斷的要關(guān)中斷。5. ADC對于ADC來說主要是按照老師的要求完成配置任務(wù),在開發(fā)板上實(shí)現(xiàn)的是運(yùn)用ADC1和ADC2兩個(gè)AD轉(zhuǎn)換器實(shí)現(xiàn)4個(gè)模擬量兩個(gè)一

10、組同時(shí)采集。沒有濾波,定時(shí)釆樣,采用DMA 方式傳送數(shù)據(jù)。并采用 DA輸出。所以這一部分介紹的內(nèi)容較多,把 AD和DA 起介紹 了。1.配置ADC的IO 口。采用C 口的PC1,PC2,PC4,PC5作為4個(gè)模擬量的輸入。所以使能C 口的時(shí)鐘。在RCC-AHB1ENR中。然后 配置這4個(gè)IO 口為模擬模式。在 GPIOC-MODER中。最后配置上拉下拉或者懸空,這里要選擇懸空模式。在GPIOC-PUPDR 中配置。2.配置DAC的IO 口。采用A 口的PA4,PA5作為DAC的模擬輸出。所以使能A 口的時(shí)鐘。在RCCAHB1ENR中。然后 配置這兩個(gè)10 口為模擬模式。在GPI0A-M0DER

11、中。GPI0A-PUPDR 中配最后配置上拉下拉或者懸空,這里選擇懸空。在 置。3.配置TIM2。使能TIM2的時(shí)鐘。在RCC-APB1ENR屮。設(shè)置分頻系數(shù)和周期。在TIM2-PSC和TIM2ARR中。產(chǎn)生更新事件,配置 TIM2向上計(jì)數(shù),使能更新事件 配置PWM等。與(二)中的配置差不多。這里主要是運(yùn)用TIM2的CC2通道事件來觸發(fā)ADC轉(zhuǎn)換。4. 配置ADCo首先使能ADC1和ADC2的時(shí)鐘。在RCC-APB2ENR寄存器中。設(shè)置 ADC1 和ADC2的總共的轉(zhuǎn)換路數(shù),這里我們轉(zhuǎn)換的是每個(gè)ADC個(gè)兩路。在 ADCx-SQRl中設(shè)置(x=l,2 ) o配置每個(gè)ADC中每一通道轉(zhuǎn)換的循序。在

12、ADCx-SQRn (n=l,2,3,4)中設(shè)置。配置ADC的公共控制寄存器,主要是 ADC時(shí)鐘的分頻,DMA的工作方式, ADC1和ADC2的工作模式等。在ADC-CCR寄存器中配置。配置采樣周期。在ADCx-SMPRm (m=l,2)中設(shè)置。使能ADC的掃描模式。在ADCx-CRl中設(shè)置(掃描 模式是指轉(zhuǎn)換完一個(gè)通道接著轉(zhuǎn)化下一個(gè)通道)。使能ADC1的TIM2的CC2上升沿觸發(fā),使能DMA方式,而且給ADC1上電。同時(shí)不使能ADC2的外部觸發(fā)方式(作為從 設(shè)備,由ADC1提供觸發(fā)信號),但要使能ADC2的DMA方式,而且給ADC2 電。5. 配置DACo使能DAC的時(shí)鐘。在RCC-APB1

13、ENR寄存器中設(shè)置。使能DAC1和DAC2。 在DAC-CR屮配置。6. 配置DMAo使能DMA2時(shí)鐘(我們用的就是DMA2)。在RCCAHB1ENR中配置。主 要配置外設(shè)地址,內(nèi)存地址,傳輸數(shù)據(jù)的大小,外設(shè)數(shù)據(jù)的格式,內(nèi)存數(shù)據(jù)的格式,內(nèi)存地址遞增模式,循環(huán)模式(即完成一次傳輸,內(nèi)存地址重頭開始放)。配置中斷。7. 主要是針對DMA2_StreamO的配置,主要的說明前面的中斷說明中提到過這里不再 說了。8. 使能定時(shí)器。9. 在中斷服務(wù)函數(shù)中,將DMA從ADC1和ADC2數(shù)據(jù)寄存器中運(yùn)送回來的數(shù)據(jù)賦給 DAC-DHR12R1 和 DAC-DHR12R2 中再輸出。6. USART1. 使能I

14、O 口時(shí)鐘,RCC-AHBlENRo設(shè)置相應(yīng)的端口為為復(fù)用功能(包括 TX和RX),其中TX還要設(shè)置輸出速度,上拉下來;RX只要設(shè)置為復(fù)用模式就可以不管了2. 使能 USART 時(shí)鐘,RCC-APB1ENR。設(shè)置波特率,USARTx-BRR;設(shè)置 USARTx-CRl 寄存器,包括USART使能,發(fā)射使能,接受使能,發(fā)射中斷,接收中斷等。(按需求來配置)3. 在USARTx-SR寄存器中。查詢TC位(或者TXE位,發(fā)送完成;當(dāng)讀取此位并有后續(xù)數(shù)據(jù)寫入時(shí)自動清0,或者軟件清0)和RXNE位(接收完成;讀取數(shù)據(jù),自動清0或者軟件 清0)或者是中斷處理。(要清除相應(yīng)的屮斷標(biāo)志位,在USARTx-CR 1寄存器屮)4. 在使用DMA的時(shí)候要在USARTxCR3中設(shè)置DMAT和DMAR位。 CC1S= 01 (TIMx_CCMRl register, TI1FP1 mapped on Til) CC2S= 01 (TIMx_CCMR2 register, TI2FP2 mapped on TI2) CC1P= O , CC1NP= O ,IC1F= 0000 (TLMx_CCER register, TI1FP1 noninverted,TI1FP1=TI1) CC2P= O ,CC2NP= O ,IC2F= 0000 (TIMx

溫馨提示

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

評論

0/150

提交評論