初级会员

- 积分
- 80
- 金钱
- 80
- 注册时间
- 2014-12-17
- 在线时间
- 0 小时
|

楼主 |
发表于 2015-5-25 17:17:30
|
显示全部楼层
回复【2楼】翼间:
---------------------------------
//ADC1通道配置
//////////////////////////////////////////////////////////////////////////////////
ADC_DeInit(ADC1); // ADC1 反初始化
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); // ADC1外时钟使能
ADC_StructInit(&ADC_InitStructure); // 初始化ADC结构
//在连续模式与一个resolutuion等于12位配置ADC1
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
//指定转换是否连续或单的方式进行。这个参数可以被设置为ENABLE或DISABLE。
ADC_InitStructure.ADC_ContinuousConvMode =DISABLE;//不连续转换
//选择外部触发边缘,使常规组触发。这个参数可以是一个值参考 ADC_external_trigger_edge_conversion
ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//软件启动转换
//定义用于启动模拟到数字转换的外部触发的正规渠道。这个参数可以是一个价值参考adc_external_trigger_sources_for_channels_conversion
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T3_TRGO;
//指定是否将ADC数据对齐左或右。这个参数可以是一个价值的“参考adc_data_align
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//转换结果右对齐
//指定在哪个方向的通道将在序列扫描。这个参数可以是一个价值的“参考adc_scan_direction
ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Backward;
ADC_Init(ADC1, &ADC_InitStructure);
ADC_ChannelConfig(ADC1, ADC_Channel_2 , ADC_SampleTime_239_5Cycles);
ADC_ChannelConfig(ADC1, ADC_Channel_3 , ADC_SampleTime_239_5Cycles);
ADC_GetCalibrationFactor(ADC1); // ADC 校准
ADC_Cmd(ADC1, ENABLE); // 使能ADC1
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADEN)); // 等待ADCEN 标志
ADC_StartOfConversion(ADC1); // ADC1 定期变换
如果我只开ADC_Channel_2 或者ADC_Channel_3 的话 采样都很正常 如果两个同时开的话 只能采一个数据 另外一个就不工作了 而且STM32F0XX的库函数没有专门关闭某一个通道的函数 |
|