STM32 ADC mit 2 Quellen?

Gast #2148377
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!

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.