电子商务网站建设与管理课后题答案,供求信息网站建设报价,h5个人网站模板源码,网站备案成功怎么查备案号ADC简介 
ADC#xff08;Analog-Digital Converter#xff09;模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量#xff0c;建立模拟电路到数字电路的桥梁12位逐次逼近型ADC#xff0c;1us转换时间输入电压范围#xff1a;0~3.3V#xff0c;…ADC简介 
ADCAnalog-Digital Converter模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量建立模拟电路到数字电路的桥梁12位逐次逼近型ADC1us转换时间输入电压范围0~3.3V转换结果范围0 ~409518个输入通道可测量16个外部和2个内部信号源规则组和注入组两个转换单元模拟看门狗自动监测输入电压范围STM32F103C8T6 ADC资源ADC1、ADC210个外部输入通道 逐次逼近型ADC  DAC:数字转模拟 VREF()、VREF(-)参考电压这个参考电压决定了ADC的输入范围 与参考电压转换过来的模拟量进行比较使用二分法的方式逐渐逼近未知的采集的模拟量这个判断过程相当于是对二进制从高位到低位依次判断是1还是0的过程。 
ADC框图  ADCCLK最大14MHz ADC预分频器只能选择6或者8分频 ADC基本结构  
输入通道   触发控制  数据对齐  转换时间  校准  硬件电路  案例单通道指定通道实现多通道转换 
#include ADC.hvoid AD_Init(void)
{//开启对应时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);//GPIO初始化GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode  GPIO_Mode_AIN;//模拟输入GPIO_InitStructure.GPIO_Pin  GPIO_Pin_0;GPIO_InitStructure.GPIO_Speed    GPIO_Speed_50MHz;GPIO_Init(GPIOA,GPIO_InitStructure);//配置ADC的通道配置ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_55Cycles5);ADC_InitTypeDef ADC_InitStructure;ADC_InitStructure.ADC_Mode  ADC_Mode_Independent;ADC_InitStructure.ADC_ContinuousConvMode  DISABLE;ADC_InitStructure.ADC_DataAlign  ADC_DataAlign_Right;ADC_InitStructure.ADC_ExternalTrigConv  ADC_ExternalTrigConv_None;ADC_InitStructure.ADC_NbrOfChannel  1;ADC_InitStructure.ADC_ScanConvMode  DISABLE;ADC_Init(ADC1,ADC_InitStructure);ADC_Cmd(ADC1,ENABLE);//ADC校准ADC_ResetCalibration(ADC1);//重置所选ADC校准寄存器。while(ADC_GetResetCalibrationStatus(ADC1)  SET);//获取所选ADC重置校准寄存器的状态,重置完成硬件清零ADC_StartCalibration(ADC1);while(ADC_GetCalibrationStatus(ADC1)  SET);//获取所选ADC校准状态,校准完成后硬件清零
}uint16_t AD_GetValue(void)//单通道
{ADC_SoftwareStartConvCmd(ADC1,ENABLE);//ADC软件触发启动转换。while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)  RESET);return ADC_GetConversionValue(ADC1);
}uint16_t AD_GetAppointValue(uint8_t ADC_Channel)//指定通道
{ADC_RegularChannelConfig(ADC1,ADC_Channel,1,ADC_SampleTime_55Cycles5);ADC_SoftwareStartConvCmd(ADC1,ENABLE);//ADC软件触发启动转换。while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)  RESET);return ADC_GetConversionValue(ADC1);
}uint16_t AD_GetVoltage(void)
{return (AD_GetValue()/4095)*3.3*100;
}