Envoie de batterie propre

This commit is contained in:
leo 2025-11-28 22:18:13 +01:00
parent 829efa26f8
commit 4fe43b9d7a
3 changed files with 22 additions and 9 deletions

View file

@ -6,6 +6,7 @@
float d;
int p;
uint32_t cpt = 0;
void MyBatterie_Init(void){
MyGPIO_Init(GPIOC,4,In_Analog); // Init PORT pour recevoir tension
@ -19,14 +20,17 @@ void MyBatterie_Init(void){
}
void handler_ADC (void){
cpt++;
if (cpt >= 400000) {
d = ADC1->DR &~ (0xF << 12); // Retourne valeur numérique
d = d*3.3/4096;
d = d*13*100/12;
//if ((p%10 > (int)d%10+2) || (p%10 < (int)d%10-2)){
p = (int) d;
send_USART(USART1,(p/10) + '0'); // Envoie le chiffre des dizaines
send_USART(USART1,(p%10) + '0'); // Envoie le chiffre des unités
send_USART_String(USART1,"Batterie : ");
send_USART(USART1,((int)d/10) + '0'); // Envoie le chiffre des dizaines
send_USART(USART1,((int)d%10) + '0'); // Envoie le chiffre des unités
send_USART(USART1,'%');
//}
send_USART(USART1,'\r');
cpt = 0;
}
start_conversion(ADC1); // Recommence la conversion pour le prochain
}

View file

@ -38,6 +38,13 @@ void send_USART(USART_TypeDef *USART, char data){
while(!(USART->SR & USART_SR_TXE)) {} // Attente de la fin de transmission --TC ????? Inverser 2 lignes +TC a la fin
}
void send_USART_String(USART_TypeDef* USARTx, char* s) {
while (*s != '\0') {
send_USART(USARTx, *s); // ta fonction qui envoie un char
s++;
}
}
char read_USART(USART_TypeDef *USART){
while (!(USART->SR & USART_SR_RXNE)){}
return USART->DR;

View file

@ -1,12 +1,14 @@
#ifndef MYUSART_H
#define MYUSART_H
#include <stm32f10x.h>
#include <math.h>
#define send_USART_init(USART) USART->CR1 |= USART_CR1_TE; // Envoi de la première trame d'attente
#define read_USART_init(USART) USART->CR1 |= USART_CR1_RE; // En attente du premier bit de start
void My_USART_Init(USART_TypeDef *USART);
void send_USART(USART_TypeDef *USART, char data);
void send_USART_String(USART_TypeDef *USART, char* s);
char read_USART(USART_TypeDef *USART);
void MyUSART_ActiveIT(USART_TypeDef *USART, int Prio, void (*IT_function) (void));