为什么ADC三个通道的值一直在换来换去啊,代码如下
int main()
{
TIM3_Init(999, 79);
ADC1_Init();;
while (1)
{
switch (event)
{
case 0 :
{
ADC_StartOfConversion(ADC1);
ADC_ChannelConfig(ADC1, ADC_Channel_6, ADC_SampleTime_55_5Cycles);
}
break;
case 1 :
{
data1 = ADC_GetConversionValue(ADC1);
}
break;
case 2 :
{
ADC_StartOfConversion(ADC1);
ADC_ChannelConfig(ADC1, ADC_Channel_7, ADC_SampleTime_55_5Cycles);
}
break;
case 3 :
{
data2 = ADC_GetConversionValue(ADC1);
}
break;
case 4 :
{
ADC_StartOfConversion(ADC1);
ADC_ChannelConfig(ADC1, ADC_Channel_9, ADC_SampleTime_55_5Cycles);
}
break;
case 5 :
{
data3 = ADC_GetConversionValue(ADC1);
}
break;
case 6 :
{
}
break;
case 7 :
{
value1 = (float)data1*3.3/1023;
value2 = (float)data2*3.3/1023;
value3 = (float)data3*3.3/1023;
event = 0;
}
break;
}
}
}
void TIM3_IRQHandler(void)
{
if (TIM_GetITStatus(TIM3, TIM_IT_Update) == SET)
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
event++;
}
}
在用STM32F407的时候完全没有问题,一样的代码,一样的功能。
有没有同学能发现问题,指教指教。