ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; // 独立模式 ADC_InitStructure.ADC_ScanConvMode = DISABLE; // 非扫描模式,即单通道采集 ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; // 单次转换模式 ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; // 软件触发转换 ADC_Init...
ADC_Init(ADC1, &ADC_InitStruct); ADC_Cmd(ADC1, ENABLE); } 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); }...
在配置完ADC并经过校准后,就可以开始读取ADC的转换值了。首先,使用ADC_RegularChannelConfig函数设置规则序列通道及其采样周期。接着,通过ADC_SoftwareStartConvCmd函数开启转换过程,该函数接受一个ADC_TypeDef指针和一个FunctionalState参数,用于指定开启或关闭转换。开启转换后,可以通过调用ADC_GetConversionValue函数获取ADC...
return ADC_GetConversionValue(ADC1); //读数据寄存器,得到AD转换的结果 } 2.3 ADC.h 接着是AD...
这里的最后一步return(uint16_t) ADCx->DR时,左侧显示的R0寄存器的值就是0x00000000,不出现正常电压...
ADC_ChannelConfig(ADC1, ADC_Channel_9, ADC_SampleTime_239_5Cycles); ADC_StartOfConversion(ADC1); } break; case 3 : { data3 = ADC_GetConversionValue(ADC1); value1 = (float)data1*3.3/1023; value2 = (float)data2*3.3/1023; value3 = (float)data3*3.3/1023; eve...
在STM32系列微控制器中,ADC模块通常包括以下特性和功能: 多通道转换:支持同时转换多个模拟通道的数据。 不同分辨率:可以根据应用需求选择不同的转换精度(分辨率)。 DMA支持:可以通过DMA(直接存储器访问)提高转换效率,减少CPU负载。 外部触发:可以通过外部触发信号启动转换过程,实现精确的时间控制。
ADC_GetConversionValue函数是获取ADC转换结果值的库函数,只有一个形参为ADC句柄,该函数还返回一个16位的ADC转换结果值 29.4.2.2.6. 主函数 代码清单 29‑6 主函数 /** * @brief 主函数 * @param 无 * @retval 无 */ int main(void) { /* 配置系统时钟为180 MHz */ SystemClock_Config(); /* 初始...
完成了初始化后,剩下的就简单了,只要获得ADC处理后的数字量,在转换成整形变量,就可以通过串口发送接收了,如下: //直接获得当前ADC转换后的值,转换并输出,CPU参与传送ADValue =ADC_GetConversionValue(ADC1); Precent= (ADValue*100/0x1000); Voltage= Precent*33; ...
ADC_RegularChannelConfig(ADC2,ADC_Channel_2,1,ADC_SampleTime_1Cycles5); 14.ADC_ExternalTrigConvConfig函数的功能是使能或者失能ADCx的经外部触发启动转换功能。 ADC_ExternalTrigConvConfig(ADC2,ENABLE); 15.ADC_GetConversionValue函数的功能是返回最近一次ADCx规则组的转换结果。