日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]ADC特點(diǎn):12位逐次逼近型的模擬數(shù)字轉(zhuǎn)換器最多帶3個(gè)ADC控制器最多支持18個(gè)通道,可最多測量16個(gè)外部和2個(gè)內(nèi)部信號源支持單次和連續(xù)轉(zhuǎn)換模式通道0到通道n的自動掃描模式自動校準(zhǔn)采樣間隔可以按通道編程規(guī)則通道和注入

ADC特點(diǎn):

12位逐次逼近型的模擬數(shù)字轉(zhuǎn)換器

最多帶3個(gè)ADC控制器

最多支持18個(gè)通道,可最多測量16個(gè)外部和2個(gè)內(nèi)部信號源

支持單次和連續(xù)轉(zhuǎn)換模式

通道0到通道n的自動掃描模式

自動校準(zhǔn)

采樣間隔可以按通道編程

規(guī)則通道和注入通道均有外部觸發(fā)選項(xiàng)

轉(zhuǎn)換結(jié)果支持左對齊或右對齊方式存儲在16位數(shù)據(jù)寄存器

ADC轉(zhuǎn)換時(shí)間:最大轉(zhuǎn)換速率1us。(最大轉(zhuǎn)換速度為1MHz,在ADCCLK=14M,采樣周期為1.5個(gè)ADC時(shí)鐘下得到。)

ADC供電要求:2.4V-3.6V

ADC輸入范圍:VREF- ≤ VIN ≤ VREF+

ADC引腳:

如下圖所示:

注:只有144引腳的STM32才有PF腳。ADC引腳:Vref+模擬參考+極;Vref-模擬參考-極;Vdda模擬電源;Vssa模擬電源地;其中Vdda和Vssa分別接Vdd和Vss。

ADC通道組:

規(guī)則通道組:相當(dāng)于正常運(yùn)行程序,最多16個(gè)通道

注入通道組:相當(dāng)于中斷。最多4個(gè)通道,在執(zhí)行規(guī)則通道組轉(zhuǎn)換過程中,如果遇到注入通道組則先去執(zhí)行注入通道組,執(zhí)行完返回繼續(xù)執(zhí)行規(guī)則通道組。

注:STM32F1的ADC的各通道可以單次,連續(xù),掃描或者間斷模式執(zhí)行;不要讓ADC時(shí)鐘超過14MHz,否則可能不準(zhǔn)。

CODE:

實(shí)驗(yàn)?zāi)康模篈DC1的通道1(PA1)進(jìn)行單次轉(zhuǎn)化。

//adc.c#include"adc.h"#include"delay.h"http://初始化ADC//這里我們僅以規(guī)則通道為例//我們默認(rèn)將開啟通道0~3voidAdc_Init(void){ADC_InitTypeDefADC_InitStructure;GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1,ENABLE);//使能ADC1通道時(shí)鐘RCC_ADCCLKConfig(RCC_PCLK2_Div6);//設(shè)置ADC分頻因子672M/6=12,ADC最大時(shí)間不能超過14M//PA1作為模擬通道輸入引腳GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;//模擬輸入引腳GPIO_Init(GPIOA,&GPIO_InitStructure);ADC_DeInit(ADC1);//復(fù)位ADC1ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//ADC工作模式:ADC1和ADC2工作在獨(dú)立模式ADC_InitStructure.ADC_ScanConvMode=DISABLE;//模數(shù)轉(zhuǎn)換工作在單通道模式ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;//模數(shù)轉(zhuǎn)換工作在單次轉(zhuǎn)換模式ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//轉(zhuǎn)換由軟件而不是外部觸發(fā)啟動ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//ADC數(shù)據(jù)右對齊ADC_InitStructure.ADC_NbrOfChannel=1;//順序進(jìn)行規(guī)則轉(zhuǎn)換的ADC通道的數(shù)目ADC_Init(ADC1,&ADC_InitStructure);//根據(jù)ADC_InitStruct中指定的參數(shù)初始化外設(shè)ADCx的寄存器ADC_Cmd(ADC1,ENABLE);//使能指定的ADC1ADC_ResetCalibration(ADC1);//使能復(fù)位校準(zhǔn)while(ADC_GetResetCalibrationStatus(ADC1));//等待復(fù)位校準(zhǔn)結(jié)束ADC_StartCalibration(ADC1);//開啟AD校準(zhǔn)while(ADC_GetCalibrationStatus(ADC1));//等待校準(zhǔn)結(jié)束//ADC_SoftwareStartConvCmd(ADC1,ENABLE);//使能指定的ADC1的軟件轉(zhuǎn)換啟動功能}//獲得ADC值//ch:通道值0~3u16Get_Adc(u8ch){//設(shè)置指定ADC的規(guī)則組通道,一個(gè)序列,采樣時(shí)間ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5);//ADC1,ADC通道,采樣時(shí)間為239.5周期ADC_SoftwareStartConvCmd(ADC1,ENABLE);//使能指定的ADC1的軟件轉(zhuǎn)換啟動功能while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//等待轉(zhuǎn)換結(jié)束returnADC_GetConversionValue(ADC1);//返回最近一次ADC1規(guī)則組的轉(zhuǎn)換結(jié)果}u16Get_Adc_Average(u8ch,u8times){u32temp_val=0;u8t;for(t=0;t


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉