中级会员
 
- 积分
- 409
- 金钱
- 409
- 注册时间
- 2012-10-24
- 在线时间
- 19 小时
|
5金钱
/* ADC1的配置------------------------------------------------------*/
ADC_StructInit(&ADC_InitStructure);
ADC_InitStructure.ADC_Mode = ADC_Mode_InjecSimult;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Left;
ADC_InitStructure.ADC_NbrOfChannel = 1;
ADC_Init(ADC1, &ADC_InitStructure);
/* ADC2 的配置 ------------------------------------------------------*/
ADC_StructInit(&ADC_InitStructure);
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Left;
ADC_InitStructure.ADC_NbrOfChannel = 1;
ADC_Init(ADC2, &ADC_InitStructure);
ADC1的两个注入组是这样的:
ADC_InjectedSequencerLengthConfig(ADC1,2);
转换:
ADC_InjectedChannelConfig(ADC1, ADC_Channel_5, 1, SAMPLING_TIME_CK);
ADC_InjectedChannelConfig(ADC1, ADC_Channel_13, 2, SAMPLING_TIME_CK);
软件触发:ADC_SoftwareStartInjectedConvCmd(ADC1,ENABLE);每次要转换前都会调用这个函数
ADC2也用了两个注入组:
ADC_InjectedSequencerLengthConfig(ADC2,2);
ADC_InjectedChannelConfig(ADC2, ADC_Channel_13, 1, SAMPLING_TIME_CK);
ADC_InjectedChannelConfig(ADC2, ADC_Channel_1, 2, SAMPLING_TIME_CK);
注意上面的红色部分,ADC1和ADC2用了同一个通道,但是ADC2没有软件触发,也没有外部触发,
而ADC1->JDR1和ADC2->JDR1却是有数据的,这里我不明白是怎么回事,难道当ADC1和ADC2用了同一个通道的时候,
在触发时只需要触发一个ADC?
|
|