|
本帖最后由 wdluo 于 2012-8-7 09:42 编辑
采用查询的方式循环采集多路ADC输入电压值,主函数如下:- /**
- * @brief 通过扫描的方式循环读取ADC采集的电压值
- * @param None
- * @retval None
- */
- int main(void)
- {
- SystemInit();//系统时钟初始化
- USART_Configuration();//串口1初始化
- printf("\x0c\0");printf("\x0c\0");//超级终端清屏
- printf("\033[1;40;32m");//设置超级终端背景为黑色,字符为绿色
- printf("\r\n*******************************************************************************");
- printf("\r\n************************ Copyright 2009-2012, ViewTool ************************");
- printf("\r\n*************************** http://www.viewtool.com ***************************");
- printf("\r\n***************************** All Rights Reserved *****************************");
- printf("\r\n*******************************************************************************");
- printf("\r\n");
- ADC_GPIO_Configuration();
- ADC_Initialize();
- ADC_Cmd(ADC1, ENABLE);
- while(1)
- {
- ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_55Cycles5);
- ADC_SoftwareStartConvCmd(ADC1, ENABLE);//开始转换
- while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)!=SET);//等待转换完毕
- printf("ADC1.10 = %f\n\r",ADC_GetConversionValue(ADC1)*3.3/4096);//ADC1的10通道
- ADC_SoftwareStartConvCmd(ADC1, DISABLE);
- ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 1, ADC_SampleTime_55Cycles5);
- ADC_SoftwareStartConvCmd(ADC1, ENABLE);//开始转换
- while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)!=SET);//等待转换完毕
- printf("ADC1.11 = %f\n\r",ADC_GetConversionValue(ADC1)*3.3/4096);//ADC1的11通道
- ADC_SoftwareStartConvCmd(ADC1, DISABLE);
- ADC_RegularChannelConfig(ADC1, ADC_Channel_12, 1, ADC_SampleTime_55Cycles5);
- ADC_SoftwareStartConvCmd(ADC1, ENABLE);//开始转换
- while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)!=SET);//等待转换完毕
- printf("ADC1.12 = %f\n\r",ADC_GetConversionValue(ADC1)*3.3/4096);//ADC1的12通道
- ADC_SoftwareStartConvCmd(ADC1, DISABLE);
- }
- }
复制代码
adc_scan_multiple.rar
(629.61 KB, 下载次数: 324)
|
|