項(xiàng)目五 數(shù)字電壓表設(shè)計(jì)_第1頁(yè)
項(xiàng)目五 數(shù)字電壓表設(shè)計(jì)_第2頁(yè)
項(xiàng)目五 數(shù)字電壓表設(shè)計(jì)_第3頁(yè)
項(xiàng)目五 數(shù)字電壓表設(shè)計(jì)_第4頁(yè)
項(xiàng)目五 數(shù)字電壓表設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、ARM結(jié)構(gòu)與應(yīng)用項(xiàng)目五 數(shù)字電壓表設(shè)計(jì)知識(shí)重點(diǎn)lSTM32 ADC的特性lSTM32 ADC的引腳功能lSTM32 ADC的庫(kù)函數(shù)使用lSTM32 ADC的庫(kù)函數(shù)使用lSTM32 ADC的程序編寫知識(shí)難點(diǎn)1. STM32 ADC簡(jiǎn)介 AD模數(shù)模塊(Analog-to-Digital Converter),即模擬/數(shù)字轉(zhuǎn)換器,主要功能是將連續(xù)變化的模擬信號(hào)轉(zhuǎn)換為離散的數(shù)字信號(hào)。 由于單片機(jī)只能處理數(shù)字信號(hào),因此,在對(duì)外部的模擬信號(hào)進(jìn)行分析、處理的過程中,必須使用ADC模塊將外部的模擬信號(hào)轉(zhuǎn)換成單片機(jī)所能處理的數(shù)字信號(hào)。 典型的模擬/數(shù)字轉(zhuǎn)換器將模擬信號(hào)轉(zhuǎn)換為表示一定比例電壓值的數(shù)字信號(hào)。2. S

2、TM32 ADC特性 12 位逐次逼近型的模擬數(shù)字轉(zhuǎn)換器 18 個(gè)通道,可測(cè)量 16 個(gè)外部和 2 個(gè)內(nèi)部信號(hào)源 各通道的 A/D 轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行 ADC 的結(jié)果可以左對(duì)齊或右對(duì)齊方式存儲(chǔ)在 16 位數(shù)據(jù)寄存器中2. STM32 ADC特性 STM32F103ZET 包含有 3 個(gè) ADC STM32 的 ADC 最大的轉(zhuǎn)換速率為 1Mhz,也就是轉(zhuǎn)換時(shí)間為 1us(在 ADCCLK=14M,采樣周期為 1.5 個(gè) ADC 時(shí)鐘下得到),不要讓 ADC 的時(shí)鐘超過 14M,否則將導(dǎo)致結(jié)果準(zhǔn)確度下降。2. STM32 ADC特性 STM32 將 ADC 的轉(zhuǎn)換分為 2 個(gè)

3、通道組: 規(guī)則通道組和注入通道組。main( ) 語(yǔ)句;void EXTI0_IRQHandler(void) 語(yǔ)句;規(guī)則通道注入通道注入通道的轉(zhuǎn)換可以打斷規(guī)則通道的轉(zhuǎn)換,在注入通道被轉(zhuǎn)換完成之后,規(guī)則通道才得以繼續(xù)轉(zhuǎn)換。3. STM32 ADC的引腳描述4. STM32 ADC的程序編寫任務(wù):使用庫(kù)函數(shù)設(shè)定使用 ADC1 的 通道 1 進(jìn)行 AD 轉(zhuǎn)換4. STM32 ADC的程序編寫main( ) /語(yǔ)句;void Adc_Init(void) /初始化 ADC1(步驟14)u16 Get_Adc(u8 ch) /讀取某個(gè)通道 的 ADC 值(步驟5),例如我們讀取通道 1 上的 ADC

4、值,就可以通過 Get_Adc(1)得到u16 Get_Adc_Average(u8 ch,u8 times) /多次獲取 ADC 值,取平均,提高準(zhǔn)確度5. STM32 ADC的庫(kù)函數(shù)(1)開啟 PA 口時(shí)鐘和 ADC1 時(shí)鐘,設(shè)置 PA1 為模擬輸入 使能時(shí)鐘:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1, ENABLE ); GPIO引腳模式: GPIO_Init 函數(shù),模擬輸入模式5. STM32 ADC的庫(kù)函數(shù)(2)復(fù)位 ADC1,同時(shí)設(shè)置 ADC1 分頻因子 分頻因子要確保 ADC1 的時(shí)鐘(ADC

5、CLK)不要超過 14Mhz。 設(shè)置分頻因子為 6,時(shí)鐘為 72/6=12MHz RCC_ADCCLKConfig(RCC_PCLK2_Div6); ADC 時(shí)鐘復(fù)位: void ADC_DeInit(ADC_TypeDef* ADCx)5. STM32 ADC的庫(kù)函數(shù)(3)初始化 ADC1 參數(shù),設(shè)置 ADC1 的工作模式以及規(guī)則序列的相關(guān)信息函數(shù)名ADC_Init函數(shù)原形void ADC_Init (ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct)功能描述根據(jù) ADC_InitStruct 中指定的參數(shù)初始化外設(shè) ADCx 的寄存器輸入

6、參數(shù) 1ADCx:x 可以是 1 或者 2 來選擇 ADC 外設(shè) ADC1 或 ADC2輸入?yún)?shù) 2ADC_InitStruct:指向結(jié)構(gòu) ADC_InitTypeDef 的指針,包含了指定外設(shè) ADC 的配置信息輸出參數(shù)無返回值無先決條件無被調(diào)用函數(shù)無5. STM32 ADC的庫(kù)函數(shù) 參數(shù) ADC_Mode 故名是以是用來設(shè)置 ADC 的模式。前面講解過,ADC 的模式非常多,包括獨(dú)立模式,注入同步模式等等,這里我們選擇獨(dú)立模式,所以參數(shù)ADC_Mode_Independent。 參數(shù) ADC_ScanConvMode 用來設(shè)置是否開啟掃描模式,因?yàn)槭菃未无D(zhuǎn)換,這里我們選擇不開 啟值 DIS

7、ABLE 即可。 參數(shù) ADC_ContinuousConvMode 用來設(shè)置是否開啟連續(xù)轉(zhuǎn)換模式,因?yàn)槭菃未无D(zhuǎn)換模式,所以 我們選擇不開啟連續(xù)轉(zhuǎn)換模式,DISABLE 即可。5. STM32 ADC的庫(kù)函數(shù) 參數(shù) ADC_ExternalTrigConv 是用來設(shè)置啟動(dòng)規(guī)則轉(zhuǎn)換組轉(zhuǎn)換的外部事件,這里我們選擇軟件觸發(fā),選擇值為 ADC_ExternalTrigConv_None 即可。 參數(shù) DataAlign 用來設(shè)置 ADC 數(shù)據(jù)對(duì)齊方式是左對(duì)齊還是右對(duì)齊,這里我們選擇右對(duì)齊方ADC_DataAlign_Right。 參數(shù) ADC_NbrOfChannel 用來設(shè)置規(guī)則序列的長(zhǎng)度,這里我們

8、是單次轉(zhuǎn)換,所以值為 1 即可。5. STM32 ADC的庫(kù)函數(shù)(4)使能 ADC 并校準(zhǔn) 使能指定的 ADC void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState) 執(zhí)行復(fù)位校準(zhǔn) void ADC_ResetCalibration(ADC_TypeDef* ADCx); 執(zhí)行 ADC 校準(zhǔn) void ADC_StartCalibration(ADC_TypeDef* ADCx);5. STM32 ADC的庫(kù)函數(shù)(4)使能 ADC 并校準(zhǔn) 每次進(jìn)行校準(zhǔn)之后要等待校準(zhǔn)結(jié)束while(ADC_GetResetCalibrationStat

9、us(ADC1); /等待復(fù)位校準(zhǔn)結(jié)束while(ADC_GetCalibrationStatus(ADC1); /等待ADC校準(zhǔn)結(jié)束5. STM32 ADC的庫(kù)函數(shù)(5)讀取 ADC 值設(shè)置規(guī)則序列通道以及采樣周期(規(guī)則序列中的第 1 個(gè)轉(zhuǎn)換,同時(shí)采樣周期為 239.5)函數(shù)名ADC_RegularChannelConfig函數(shù)原形void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, u8 ADC_Channel, u8 Rank, u8 ADC_SampleTime)功能描述設(shè)置指定 ADC 的規(guī)則組通道,設(shè)置它們的轉(zhuǎn)化順序和采樣時(shí)間輸入?yún)?shù) 1

10、ADCx:x 可以是 1 或者 2 來選擇 ADC 外設(shè) ADC1 或 ADC2輸入?yún)?shù) 2ADC_Channel:被設(shè)置的 ADC 通道輸入?yún)?shù) 3Rank:規(guī)則組采樣順序。取值范圍 1 到 16。輸入?yún)?shù) 4ADC_SampleTime:指定 ADC 通道的采樣時(shí)間值參閱章節(jié) ADC_SampleTime 查閱更多該參數(shù)允許取值范圍輸出參數(shù)無返回值無先決條件無被調(diào)用函數(shù)無5. STM32 ADC的庫(kù)函數(shù)(5)讀取 ADC 值 軟件開啟 ADC 轉(zhuǎn)換void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) 獲取轉(zhuǎn)換 ADC 轉(zhuǎn)換結(jié)果數(shù)據(jù) u16 ADC_GetConversionValue(ADC_TypeDef* ADCx) 獲取 AD 轉(zhuǎn)換的狀態(tài)信息FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG) 如何判斷 ADC1的轉(zhuǎn)換是否結(jié)束?平均值怎么算? 110求平均值

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論