Reading analog input with an STM32F103C8T6 board. ADC is calibrated to achieve higher accuracy.

Dependencies:   mbed

Reading analog input with STM32F103C8T6 board

Import the program into your online compiler.

Schematic

/media/uploads/hudakz/stm32f103c8t6_aanalogin.png

main.cpp

Committer:
hudakz
Date:
2017-11-18
Revision:
0:5d7148c1f26a
Child:
1:7522adef9bd0

File content as of revision 0:5d7148c1f26a:

#include "stm32f103c8t6.h"
#include "mbed.h"
#include "AnalogInCal.h"

const float REF_VOLT = 3300; // Reference voltage in milivolts
 
int main() {
    confSysClock();     //Configure system clock (72MHz HSE clock, 48MHz USB clock)
    
    Serial      pc(PA_2, PA_3);
    DigitalOut  myled(LED1);
//    AnalogIn    analogIn(PA_0); // Create an uncalibrated analog input
    AnalogInCal analogIn(PA_0); // Create an analog input with calibrated AD convertor
    float       voltage;    
    
    while (1) {
        voltage = analogIn.read() * REF_VOLT;  // convert analog to digital
        pc.printf("voltage = %.0f mV\r\n", voltage);
        myled = !myled;
        wait_ms(1000);
    }
}