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:
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.
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 0x1FFFF7BA
ihm 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/