Vref_cal auf STM32F3xx ADC

Gibt es eine Funktion zum Lesen der Vrefint_cal in Cubes HAL-Bibliotheken? Ich benutze den F3xx. Ich würde gerne die Versorgungsspannung des Mikros messen. Die im Referenzhandbuch angegebene Formel lautet:

v D D A = 3.3 v × v R e F ich N T C A l v R e F ich N T D A T A

Ich habe HAL (Würfel) durchsucht und konnte keine Methode finden, um den Vrefint_cal zurückzugeben. Das Datenblatt sagt, dass es bei ist 0x1FFF F7BA - 0x1FFF F7BB, aber ich finde es albern, dass es keine Methode geben würde, es direkt zu lesen.

Antworten (2)

Eine einfache Möglichkeit ist die folgende:

#define VREFINT_CAL_ADDR    0x1FFFF7BA

uint16_t vrefint_cal;                        // VREFINT calibration value
vrefint_cal= *((uint16_t*)VREFINT_CAL_ADDR); // read VREFINT_CAL_ADDR memory location

Oder allgemeiner ist es, einfach einen Zeiger zu erstellen und 0x1FFFF7BAihm zuzuweisen, und dann ist der Rest gleich.

#define VREFINT_CAL_ADDR ((uint16_t*)((uint32_t)0x1FFFF7BA))

Und dann zum Beispiel:

Vdd = 3300*(*VREFINT_CAL_ADDR)/ADC_raw;

Wobei Vdd und ADC_raw uint16_t sind.

Mehr Infos hier: https://letanphuc.net/2016/07/stm32f0-adc/