然后Get_Adc()程序如下: u16 Get_adc() { //设置指定ADC的规则组通道,一个序列,采样时间 ADC_RegularChannelConfig(RHEOSTAT_ADC, RHEOSTAT_ADC_CHANNEL, 1, ADC_SampleTime_56Cycles);; //ADC1,ADC通道,采样时间为239.5周期 ADC_Cmd(RHEOSTAT_ADC, ENABLE); ADC_SoftwareStartConv(RHEOSTAT_ADC); //使能指定...
二、ADC通道与引脚对应关系 三、ADC相关 1、 ADC 可由 APB 时钟或 HSI16 时钟提供。2、 ADC 转换...
11 ADC转换时间:最大转换速率 1us(最大转换速度为1MHz,在ADCCLK=14M,采样周期为1.5个ADC时钟下得到); 12 ADC供电要求:2.4V-3.6V; 13 ADC输入范围:VREF- ≤ VIN ≤ VREF+。 STM32F10x系列芯片ADC通道和引脚对应关系 由上图中可以看出,STM32F103带3个ADC控制器,一共支持23个通道,包括21个外部和2个内部...
adcx=Get_Adc_Average(ADC_Channel_5,20);//获取通道5的转换值,20次取平均 temp=(float)adcx*(...
ADC输入范围:VREF- ≤ VIN ≤ VREF+。 ADC的功能说明 1.电压输入 我们先看一下下面这张图: ADC所能测量的电压范围就是VREF- ≤ VIN ≤ VREF+,把 VSSA 和 VREF-接地,把 VREF+和 VDDA 接 3V3,得到ADC 的输入电压范围为: 0~3.3V。 2.输入通道 ...
u16 Get_Adc(u8 ch) //获得某个通道值 { ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_480Cycles ); ADC_SoftwareStartConv(ADC1); while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)); return ADC_GetConversionValue(ADC1); } u16 Get_Adc_Average(u8 ch,u8 times)//得到某个通道给定次数采样...
temp=(float)adcx*(3.3/4096); //得到 DAC 电压值 adcx=temp; LCD_ShowxNum(94,170,temp,1,16,0);//显示电压值整数部分 temp-=adcx; temp*=1000; LCD_ShowxNum(110,170,temp,3,16,0X80); //显示电压值的小数部分 adcx=Get_Adc_Average(ADC_Channel_5,10); //得到 ADC 转换值 ...
Adc_Init(); //ADC初始化 在main中测量并显示 while(1) { adcx=Get_Adc_Average(ADC_Channel_4,10); //LCD_ShowxNum(156,130,adcx,4,16,0);//显示ADC的值 temp=(float)adcx*(3.3/4096); adcx=temp; sprintf((char *)string,"temp:%.2f",temp); OLED_ShowString(6,3,string,16); } ...
ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中。 模拟 看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。 STM32F407ZGT6 包含有 3 个 ADC。STM32F4 的 ADC 最大的转换速率为 2.4Mhz,也就是 转换时间为 0.41us(在 ADCCLK=36M,采样周期为 3 个 ADC 时钟下得到),不要让 ADC...
AMP=Get_Adc_Average(ADC_Channel_3,10);//PA3 delay_ms(10); PHS=Get_Adc_Average(ADC_Channel_7,10);//PA7 delay_ms(10); AMPTEMP += AMP; PHSTEMP += PHS; } AMPTEMP/=10; PHSTEMP/=10; AMP_RATIO = (2048/(float)AMPTEMP); ...