Estoy juntando mi propio ejemplo de ADC para el módulo de pastillas azules de STM al leer el manual de referencia (por cierto, sin experiencia en desarrollo integrado).
El esquema del código hasta ahora es:
void do_adc(void)
{
unsigned int ra;
ra=GET32(ADC_CR2);
ra|=1; // ADON
PUT32(ADC_CR2, ra);
// wait for EOC flag
while ((GET32(ADC_SR) & 0x02) == 1)
{
led_blink();
}
ra = GET16(ADC_DR);
PUT32(USART1_DR,ra);
sleep();
PUT32(USART1_DR,'\r');
sleep();
PUT32(USART1_DR,'\n');
sleep();
}
int notmain(void)
{
init_led_adc_and_uart();
disable_adc();
calibrate_adc();
enable_adc();
while (1)
{
led_blink();
do_adc();
}
}
He escrito un código para cada una de esas funciones que probablemente no sea correcto, pero esa no es la pregunta en este momento. Todavía me pregunto dónde está el alfiler de Vref en la pastilla azul; basado en este diagrama , ¿verdad?
Si mi entendimiento es correcto, entonces conectaría un sensor de temperatura al pin físico 10 (también conocido como canal 0 de ADC), asegurando que el sensor tenga un voltaje de ~ 3.3v. Luego, para referencia, conecte la misma entrada en algún lugar de la pastilla azul para que pueda hacer la conversión.
Sin embargo, en función del diagrama que vinculé, no estoy seguro de dónde se encuentra el referente analógico.
Por cierto: coloqué mi código en el chip y el led parpadea continuamente, por lo que el código está probablemente bien, ¡pero necesito entrenar las conexiones!