《智能電子產(chǎn)品設(shè)計(jì)與制作》課件-1.8.3 AD轉(zhuǎn)換及DMA固件函數(shù)庫_第1頁
《智能電子產(chǎn)品設(shè)計(jì)與制作》課件-1.8.3 AD轉(zhuǎn)換及DMA固件函數(shù)庫_第2頁
《智能電子產(chǎn)品設(shè)計(jì)與制作》課件-1.8.3 AD轉(zhuǎn)換及DMA固件函數(shù)庫_第3頁
《智能電子產(chǎn)品設(shè)計(jì)與制作》課件-1.8.3 AD轉(zhuǎn)換及DMA固件函數(shù)庫_第4頁
《智能電子產(chǎn)品設(shè)計(jì)與制作》課件-1.8.3 AD轉(zhuǎn)換及DMA固件函數(shù)庫_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1.8.3AD轉(zhuǎn)換及DMA固件函數(shù)庫項(xiàng)目一11一月2026智能電子產(chǎn)品設(shè)計(jì)與制作主要內(nèi)容ADC及DMA固件函數(shù)庫3.ADC及DMA固件函數(shù)庫(1)函數(shù)ADC_Init函數(shù)原型:voidADC_Init(ADC_TypeDef*ADCx,ADC_InitTypeDef*ADC_InitStruct)函數(shù)功能:根據(jù)ADC_InitTypeDef中指定的參數(shù)初始化外設(shè)ADCx寄存器。ADC_InitStruct指向ADC_InitTypeDef的指針,ADC_InitTypeDef結(jié)構(gòu)體定義于stm32f0xx_adc.h文件中。其結(jié)構(gòu)體如下:typedefstruct{uint32_tADC_Resolution;//分辨率選擇FunctionalStateADC_ContinuousConvMode;//轉(zhuǎn)換模式單次還是連續(xù)uint32_tADC_ExternalTrigConvEdge;//外部觸發(fā)邊沿uint32_tADC_ExternalTrigConv;//外部觸發(fā)源uint32_tADC_DataAlign;//對齊方式uint32_tADC_ScanDirection;//掃描方向}ADC_InitTypeDef;3.ADC及DMA固件函數(shù)庫(1)函數(shù)ADC_Init實(shí)例:ADC_InitTypeDefADC_InitStructure;ADC_InitStructure.ADC_Resolution=ADC_Resolution_12b;//12位ADADC_InitStructure.ADC_ContinuousConvMode=DISABLE;//連續(xù)轉(zhuǎn)換失能//不使用外部觸發(fā)ADC_InitStructure.ADC_ExternalTrigConvEdge=ADC_ExternalTrigConvEdge_None;ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//數(shù)據(jù)右對齊ADC_InitStructure.ADC_ScanDirection=ADC_ScanDirection_Upward;//向上掃描ADC_Init(ADC1,&ADC_InitStructure);3.ADC及DMA固件函數(shù)庫(2)函數(shù)ADC_Cmd函數(shù)原型:voidADC_Cmd(ADC_TypeDef*ADCx,FunctionalStateNewState)函數(shù)功能:使能ADC實(shí)例:ADC_Cmd(ADC1,ENABLE);//使能ADC3.ADC及DMA固件函數(shù)庫(3)函數(shù)ADC_ChannelConfig函數(shù)原型:voidADC_ChannelConfig(ADC_TypeDef*ADCx,uint32_tADC_Channel,uint32_tADC_SampleTime)實(shí)例:ADC_ChannelConfig(ADC1,ADC_Channel_0,ADC_SampleTime_239_5Cycles);//ADC1通道0,設(shè)置采樣時(shí)間239.5個(gè)周期。3.ADC及DMA固件函數(shù)庫(4)函數(shù)ADC_GetCalibrationFactor函數(shù)原型:uint32_tADC_GetCalibrationFactor(ADC_TypeDef*ADCx)函數(shù)功能:激活所選ADC的校準(zhǔn)操作實(shí)例:ADC_GetCalibrationFactor(ADC1);//ADC校準(zhǔn)(5)函數(shù)ADC_StartOfConversion函數(shù)原型:voidADC_StartOfConversion(ADC_TypeDef*ADCx)函數(shù)功能:啟動(dòng)AD轉(zhuǎn)換實(shí)例:ADC_StartOfConversion(ADC1);//啟動(dòng)AD轉(zhuǎn)換3.ADC及DMA固件函數(shù)庫(6)函數(shù)ADC_GetConversionValue函數(shù)原型:uint16_tADC_GetConversionValue(ADC_TypeDef*ADCx)函數(shù)功能:獲取AD轉(zhuǎn)換結(jié)果實(shí)例:uint16_tAD_Value;AD_Value=ADC_GetConversionValue(ADC1);(7)函數(shù)ADC_DMACmd函數(shù)原型:voidADC_DMACmd(ADC_TypeDef*ADCx,FunctionalStateNewState)函數(shù)功能:使能ADC的DMA請求實(shí)例:

ADC_DMACmd(ADC1,ENABLE);//使能ADC的DMA請求3.ADC及DMA固件函數(shù)庫(8)函數(shù)ADC_DMARequestModeConfig函數(shù)原型:voidADC_DMARequestModeConfig(ADC_TypeDef*ADCx,uint32_tADC_DMARequestMode)函數(shù)功能:啟用或禁用上次傳輸后的ADC的DMA請求。實(shí)例:ADC_DMARequestModeConfig(ADC1,ADC_DMAMode_Circular);//循環(huán)模式下DMA請求3.ADC及DMA固件函數(shù)庫(9)函數(shù)ADC_GetFlagStatus函數(shù)原型:FlagStatusADC_GetFlagStatus(ADC_TypeDef*ADCx,uint32_tADC_FLAG)函數(shù)功能:獲取ADC狀態(tài)標(biāo)志位實(shí)例:ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC);//獲取AD轉(zhuǎn)換完成狀態(tài)標(biāo)志位(10)函數(shù)ADC_ClearFlag函數(shù)原型:voidADC_ClearFlag(ADC_TypeDef*ADCx,uint32_tADC_FLAG)函數(shù)功能:清除ADC狀態(tài)標(biāo)志位實(shí)例:ADC_ClearFlag(ADC1,ADC_FLAG_EOC);//清除EOC標(biāo)志位3.ADC及DMA固件函數(shù)庫(11)函數(shù)DMA_Init函數(shù)原型:voidDMA_Init(DMA_Channel_TypeDef*DMAy_Channelx,DMA_InitTypeDef*DMA_InitStruct)函數(shù)功能:DMA初始化,根據(jù)DMA_InitTypeDef中指定的參數(shù)初始化外設(shè)DMA寄存器。DMA_InitStruct是指向DMA_InitTypeDef的指針,DMA_InitTypeDef結(jié)構(gòu)體定義于stm32f0xx_dma.h文件中,其結(jié)構(gòu)體定義如下:typedefstruct{uint32_tDMA_PeripheralBaseAddr;//外設(shè)基地址uint32_tDMA_MemoryBaseAddr;//內(nèi)存基地址uint32_tDMA_DIR;//DMA傳輸方向uint32_tDMA_BufferSize;//DMA緩沖區(qū)大小uint32_tDMA_PeripheralInc;//外設(shè)寄存器地址是否遞增uint32_tDMA_MemoryInc;//內(nèi)存地址是否遞增uint32_tDMA_PeripheralDataSize;//外設(shè)數(shù)據(jù)寬度uint32_tDMA_MemoryDataSize;//內(nèi)存數(shù)據(jù)寬度uint32_tDMA_Mode;//DMA模式:normal或circular模式uint32_tDMA_Priority;//DMA優(yōu)先級(jí)uint32_tDMA_M2M;//內(nèi)存到內(nèi)存?zhèn)鬏攠DMA_InitTypeDef;3.ADC及DMA固件函數(shù)庫(11)函數(shù)DMA_Init實(shí)例:#defineADC1_DR_Address((uint32_t)0x40012440)uint16_tADC_ConvertedValue[1024];DMA_InitTypeDefDMA_InitStructure;DMA_InitStructure.DMA_PeripheralBaseAddr=ADC1_DR_Address;//外設(shè)基地址//內(nèi)存基地址DMA_InitStructure.DMA_MemoryBaseAddr=(uint32_t)ADC_ConvertedValue;DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC;//傳輸方向外設(shè)到內(nèi)存DMA_InitStructure.DMA_BufferSize=1024;//定義內(nèi)存緩沖區(qū)大小//外設(shè)地址不遞增DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Disable;DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Enable;//內(nèi)存地址遞增//半字傳輸DMA_InitStructure.DMA_PeripheralDataSize=DMA_PeripheralDataSize_HalfWord;//半字傳輸DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord;DMA_InitStructure.DMA_Mode=DMA_Mode_Circular;//循環(huán)模式DMA_InitStructure.DMA_Priority=DMA_Priority_High;//優(yōu)先級(jí)為高DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;//非內(nèi)存到內(nèi)存DMA_Init(DMA1_Channel1,&DMA_InitStructure);3.ADC及DMA固件函數(shù)庫(12)函數(shù)DMA_Cmd函數(shù)原型:voidDMA_Cmd(DMA_Channel_TypeDef*DMAy_Channelx,FunctionalStateNewState)函數(shù)功能:使能DMA的通道實(shí)例:DMA_Cmd(DMA1_Channel1,ENABLE);//使能DMA1通道1(13)函數(shù)DMA_ITConfig函數(shù)原型:voidDMA_ITConfig(DMA_Channel_TypeDef*DMAy_Channelx,uint32_tDMA_IT,FunctionalStateNewState)函數(shù)功能:DMA中斷使能配置實(shí)例:DMA_ITConfig(DMA1_Channel1,DMA_IT_TC,ENABLE);//使能DMA1通道1發(fā)送完成中斷3.ADC及DMA固件函數(shù)庫(14)函數(shù)DMA_GetITStatus函數(shù)原型:ITStatusDMA_GetITStatus(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論