From d452faf402514ea3ee4305f5b44b4118bcba8e8c Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 26 Nov 2025 23:36:40 +0100 Subject: [PATCH] test batterie pas convaiquant --- Services/Batterie.c | 15 +++++++++++---- Services/Batterie.h | 1 + drivers/MySPI.c | 6 ++++-- drivers/USART.c | 6 +++--- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/Services/Batterie.c b/Services/Batterie.c index b2391bd..387a479 100644 --- a/Services/Batterie.c +++ b/Services/Batterie.c @@ -7,27 +7,34 @@ float d; short v; int p; +char test; void MyBatterie_Init(void){ MyGPIO_Init(GPIOC,4,In_Analog); // Init PORT pour recevoir tension - MyGPIO_Init(GPIOA,2,AltOut_Ppull); // Init PORT UART2 TX pour envoyer pourcentage batterie - MyGPIO_Init(GPIOA,3,In_Floating); MyADC_Init(ADC1,14); // Init ADC channel 14 pour convertir valeur MyADC_ActiveIT(ADC1,15,&handler_ADC); // Init interruption quand conversion finie My_USART_Init(USART2); // Init USART pour envoyer batterie + My_USART_Init(USART1); + MyUSART_ActiveIT(USART1,10,&handler); + start_conversion(ADC1); // Premiere conversion } void handler_ADC (void){ - d = ADC1->DR &~ (0xF << 12); // Retourne valeur numérique + d = 1044;//ADC1->DR &~ (0xF << 12); // Retourne valeur numérique d = d*3.3/4096; d = d*13*100/12; p = (int) d; send_USART(USART2,(p/10) + '0'); // Envoie le chiffre des dizaines send_USART(USART2,(p%10) + '0'); // Envoie le chiffre des unités send_USART(USART2,'%'); - start_conversion(ADC1); // Recommence la conversion pour le prochain + //start_conversion(ADC1); // Recommence la conversion pour le prochain +} + +void handler(void){ + test = USART1->DR; + test = test + 1; } \ No newline at end of file diff --git a/Services/Batterie.h b/Services/Batterie.h index 059636f..f3e0dfb 100644 --- a/Services/Batterie.h +++ b/Services/Batterie.h @@ -3,5 +3,6 @@ void MyBatterie_Init(void); void handler_ADC(void); +void handler(void); #endif \ No newline at end of file diff --git a/drivers/MySPI.c b/drivers/MySPI.c index ff851f2..cca30cf 100644 --- a/drivers/MySPI.c +++ b/drivers/MySPI.c @@ -9,11 +9,11 @@ void MySPI_Init(SPI_TypeDef * SPI){ // Initialisationdes PORTS IOs MyGPIO_Init(GPIOA,4,Out_Ppull); MyGPIO_Init(GPIOA,5,AltOut_Ppull); - MyGPIO_Init(GPIOA,6,In_PullDown); + MyGPIO_Init(GPIOA,6,In_Floating); MyGPIO_Init(GPIOA,7,AltOut_Ppull); } else if (SPI == SPI2) { - RCC->APB2ENR |= RCC_APB1ENR_SPI2EN; + RCC->APB1ENR |= RCC_APB1ENR_SPI2EN; SPI->CR1 |= SPI_CR1_BR_1 | SPI_CR1_BR_2; MyGPIO_Init(GPIOB,12,Out_Ppull); MyGPIO_Init(GPIOB,13,AltOut_Ppull); @@ -34,6 +34,7 @@ void MySPI_Send(char ByteToSend){ while (!(SPI1->SR & SPI_SR_TXE)){} // Attend que DR soit vide SPI1->DR = ByteToSend; // On met notre donnée dans DR while (!(SPI1->SR & SPI_SR_RXNE)){} // Attente de réception du byte poubelle sur MISO + while (SPI1->SR & SPI_SR_BSY){} char poubelle = SPI1->DR; // Je pense qu'on pourrait clear RXNE a la place : SPI1->SR &=~ SPI_SR_RXNE } @@ -41,6 +42,7 @@ char MySPI_Read(void){ while (!(SPI1->SR & SPI_SR_TXE)){} // Attend que DR soit vide SPI1->DR = 0x00; // Pour trasmettre la clock while (!(SPI1->SR & SPI_SR_RXNE)) {} // On attend de recevoir dans buffer de reception le byte + while (SPI1->SR & SPI_SR_BSY){} return SPI1->DR; } diff --git a/drivers/USART.c b/drivers/USART.c index ab52be7..6355a33 100644 --- a/drivers/USART.c +++ b/drivers/USART.c @@ -27,15 +27,15 @@ void My_USART_Init(USART_TypeDef *USART){ } USART->CR1 |= USART_CR1_UE; // Activation de l'USART USART->CR1 &= ~USART_CR1_M; // Choix d'une taille de 8 bits de données - USART->CR2 &= USART_CR2_STOP; // Choix d'un seul bit de stop + USART->CR2 &=~ USART_CR2_STOP; // Choix d'un seul bit de stop USART->CR1 |= USART_CR1_TE; // Transmission validée USART->CR1 |= USART_CR1_RE; // réception validée } void send_USART(USART_TypeDef *USART, char data){ - USART->DR |= data; // Ecriture de la donnée dans le registre DR - while(!(USART->SR & USART_SR_TXE)) {} // Attente de la fin de transmission + USART->DR = data; // Ecriture de la donnée dans le registre DR + while(!(USART->SR & USART_SR_TXE)) {} // Attente de la fin de transmission --TC ????? Inverser 2 lignes +TC a la fin } char read_USART(USART_TypeDef *USART){