Forum: Mikrocontroller und Digitale Elektronik STM32 ADC mit 2 Quellen?


von Kurt (Gast)


Lesenswert?

Hallo,
ich habe hier einen STM32 und möchte gerne mit einem ADC zwei analoge 
Spannungen abwechselnd einlesen, habe damit aber so meine Probleme.
Pins sind konfiguriert, ADC1 ist an und sampelt auch fleißig, leider ist 
jeder zweite Wert eine 0. Deshalb gehe ich davon aus, dass meine 
Einstellungen mit den zwei Channeln nicht ganz stimmen :(

Die analogen Signale liegen an ADC1 Channel 14 und 15.
Hier mein Code zum Konfigurieren und Starten des ADC1:

1
  /* ADC1 konfigurieren für PC4 und PC5*/
2
  /* ADC1 ist an APB2 und darf mit maximal 14MHz betrieben werden */
3
  RCC_ADCCLKConfig(RCC_PCLK2_Div4);
4
  /* Takt anlegen */
5
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
6
7
  ADC_InitTypeDef ADC_InitStructure;
8
  ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
9
  ADC_InitStructure.ADC_ScanConvMode = ENABLE;
10
  ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
11
  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
12
  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
13
  ADC_InitStructure.ADC_NbrOfChannel = 2;
14
  ADC_Init(ADC1, &ADC_InitStructure);
15
16
  /* PC4 ist Channel 14, PC5 ist Channel 15 */
17
  ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_55Cycles5);
18
  ADC_RegularChannelConfig(ADC1, ADC_Channel_15, 2, ADC_SampleTime_55Cycles5);
19
20
  /* ADC1 aktivieren */
21
  ADC_Cmd(ADC1, ENABLE);
22
23
  /* ADC1 Kalibrieren */
24
  ADC_ResetCalibration(ADC1);
25
  while(ADC_GetResetCalibrationStatus(ADC1));
26
  ADC_StartCalibration(ADC1);
27
  while(ADC_GetCalibrationStatus(ADC1));
28
29
  ADC_SoftwareStartConvCmd(ADC1, ENABLE);
Ich stelle 2 Channel ein, der 14er bekommt Rank1, der andere Rank2. 
Jetzt dachte ich, dass ich durch Ausführen der Befehle

  X=ADC_GetConversionValue(ADC1);
  Y=ADC_GetConversionValue(ADC1);

Meine beiden Spannungen eingelesen bekomme. Klappt aber nicht, wie 
gesagt, jeder zweite Wert ist 0. Was mache ich falsch? Danke für eure 
Hilfe!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.