库函数版本:3.5
平台:KEIL 4.72
ADC1初始化部分
ADC_InitTypeDef ADC_USER
RCC_ADCCLKConfig(RCC_PCLK2_Div6)
ADC_USER.ADC_Mode = ADC_Mode_Independent
ADC_USER.ADC_ScanConvMode = DISABLE
ADC_USER.ADC_ContinuousConvMode = DISABLE
ADC_USER.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None
ADC_USER.ADC_DataAlign = ADC_DataAlign_Right
ADC_USER.ADC_NbrOfChannel = 1
ADC_Init(ADC1, &ADC_USER)
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_239Cycles5)
ADC_Cmd(ADC1, ENABLE)
ADC_ResetCalibration(ADC1)
while(ADC_GetResetCalibrationStatus(ADC1))
ADC_StartCalibration(ADC1)
while(ADC_GetCalibrationStatus(ADC1))
ADC_SoftwareStartConvCmd(ADC1, ENABLE)
//主程序调用ADC部分
ADC_SoftwareStartConvCmd(ADC1, ENABLE)
delay_us(200)
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC))
num = ADC_GetConversionValue(ADC1)//返回值就是采集的数据
ADC的分辨率指的是模数转换器所能表示的最大数是多少,即ADC的位数,如果ADC是10位ADC,那么分辨率是2的10次方,即1024的分辨率,如果模拟量是温度,测量范围是0~100度,那么可以把100度分成1024份,每一份你都能感知,当温度有100/1024度的变化时,能测量出来。
采样率指ADC每秒钟会进行多少次的模拟量转数字量的 *** 作,如10K/s就是说ADC每秒钟,就采集了10K个模拟量,并将模拟量转换为数字量。当采样声时,一般的采样率是44Kbps/s,当采样温度时,几K/s的采样率就够了。
扩展资料:
所有的模拟数字转换器以每隔一定时间进行采样的形式进行工作。因此,它们的输出信号只是对输入信号行为的不完全描述。在某一次采样和下一次采样之间的时间段,仅仅根据输出信号,是无法得知输入信号的形式的。
如果输入信号以比采样率低的速率变化,那么可以假定这两次采样之间的信号介于这两次采样得到的信号值。然而,如果输入信号改变过快,则这样的假设是错误的。
如果模拟数字转换器产生的信号在系统的后期,通过数字模拟转换器,则输出信号可以忠实地反映原始信号。如经过输入信号的变化率比采样率大得多,则是另一种情况,模拟数字转换器输出的这种“假”信号被称作“混叠”。混叠信号的频率为信号频率和采样率的差。
参考资料来源:百度百科--ADC
0809上有个clock脚,这个是接工作时钟的,和采样率不是一个概念。采样率由控制芯片决定。比如你用单片机,就有单片机发送一个采样”指令"给0809,它就采样一次。指令发送速度就是采样频率。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)