Was ist die Pin-Zuordnung, wenn wir einen ADC in Micro STM32F401 verwenden?

Wenn wir kontinuierliche Daten erfassen und einem digitalen Wert zuordnen wollten, müssen wir ADCs verwenden.

Aber es gibt ein Problem. Wenn wir mehrere Pins als analoge Eingänge festlegen, welche Kanäle entsprechen den einzelnen Pins im analogen Modus?

In den Steuerregistern haben wir keinen Pin, der bestimmt, auf welchem ​​​​Pin und auf welchem ​​​​Kanal auf ADC zu erfassen ist.

Ich habe das Referenzhandbuch gelesen, aber es sagt, konfigurieren Sie einfach einen Pin an einem Port im analogen Modus. Wenn wir jedoch mehrere analoge Eingänge haben und mehrere ADC-Kanäle verwenden möchten, gibt es einige Schwierigkeiten damit und mit der Zuordnung zwischen analogen Eingangspins und ADC-Kanälen.

Bitte geben Sie einen Link zum "Referenzhandbuch" an und teilen Sie uns mit, welche Abschnitte Sie gerade lesen.
Dies ist nicht erforderlich, da das Referenzhandbuch in dieser Hinsicht nutzlos ist. Die Information steht im Datenblatt.
@Justme Entschuldigung, du irrst dich. ST-Datenblätter enthalten nur elektrische Eigenschaften und Pinbelegungen der spezifischen Chips. Die Referenzhandbücher enthalten aktuelle Programmierdetails für die gesamte Serie. Das OP scheint verwirrter zu sein, wenn es darum geht, mehrere Kanäle zu verwenden als eine einfache Pin-Zuordnung

Antworten (2)

Vollständiges Datenblatt für die gesamte STM32F40x-Familie hier . Es gibt Möglichkeiten, den ADC so zu konfigurieren, dass er automatisch Pins durchläuft, die als ADC-Eingänge konfiguriert sind, und den Eingang darauf liest. Sie können auch mehrere einzelne Konvertierungen manuell durchführen, also prüfen Sie ADC1, konfigurieren Sie ADC für einen anderen Kanal neu, prüfen Sie ADC2,... Lesen Sie mehr im mitgelieferten Datenblatt oder erfahren Sie, wie Sie Tools wie CUBE MX verwenden, die die Konfiguration für Sie übernehmen können. Sie können auch bereits vorhandene HAL-Bibliotheken verwenden, anstatt Ihre eigenen Funktionen zu schreiben, um ADC in verschiedenen Modi zu lesen. Die Kombination von HAL und CUBE MX würde ich empfehlen, da Sie nur davon profitieren, wenn Sie wissen, wie man mit ihnen arbeitet, und sie Ihr Leben viel einfacher machen.

Ich weiß nicht, warum diese Antwort -1 hat. Natürlich fehlen Details, aber wenn man sich die ursprüngliche Frage ansieht, werden nicht weniger als mehrere Seiten mit Codebeispielen hilfreich sein. Und selbst dann wird die Verwendung von Cube + HAL OP weiter und schneller bringen, als zu erklären, wie Register funktionieren

Ich füge meine zwei Cent zu Daniels Antwort hinzu. Ich würde empfehlen, den folgenden Anwendungshinweis zu lesen

AN3116 "STM32 ADC-Modi und ihre Anwendungen"

für die Erklärung, wie die Mehrkanal-ADC-Konvertierung funktioniert. Insbesondere Abschnitt 1.4 „Kontinuierlicher Konvertierungsmodus Mehrkanal (Scan)“ wäre für Sie am interessantesten. Wenn Sie das verstehen, lesen Sie

AN4031 „Verwendung des DMA-Controllers der Serien STM32F2, STM32F4 und STM32F7“

weil DMA im Zirkularmodus der einfachste Weg ist, um Scan-Ergebnisse in Ihre Anwendung zu bekommen, ohne CPU-Zyklen zu verschwenden.

Der Rest ist einfach - Sie geben an, welche Kanäle Sie in welcher Reihenfolge abtasten möchten, und weisen dann DMA an, die Ergebnisse in Ihr eigenes Array von 16-Bit-Ganzzahlen zu übertragen. Die konvertierte Spannung an den entsprechenden Pins erscheint dann "magisch" in Ihrem Array.