test batterie pas convaiquant
This commit is contained in:
parent
0c1e39ffd6
commit
d452faf402
4 changed files with 19 additions and 9 deletions
|
|
@ -7,27 +7,34 @@
|
||||||
float d;
|
float d;
|
||||||
short v;
|
short v;
|
||||||
int p;
|
int p;
|
||||||
|
char test;
|
||||||
|
|
||||||
void MyBatterie_Init(void){
|
void MyBatterie_Init(void){
|
||||||
MyGPIO_Init(GPIOC,4,In_Analog); // Init PORT pour recevoir tension
|
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_Init(ADC1,14); // Init ADC channel 14 pour convertir valeur
|
||||||
MyADC_ActiveIT(ADC1,15,&handler_ADC); // Init interruption quand conversion finie
|
MyADC_ActiveIT(ADC1,15,&handler_ADC); // Init interruption quand conversion finie
|
||||||
|
|
||||||
My_USART_Init(USART2); // Init USART pour envoyer batterie
|
My_USART_Init(USART2); // Init USART pour envoyer batterie
|
||||||
|
|
||||||
|
My_USART_Init(USART1);
|
||||||
|
MyUSART_ActiveIT(USART1,10,&handler);
|
||||||
|
|
||||||
start_conversion(ADC1); // Premiere conversion
|
start_conversion(ADC1); // Premiere conversion
|
||||||
}
|
}
|
||||||
|
|
||||||
void handler_ADC (void){
|
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*3.3/4096;
|
||||||
d = d*13*100/12;
|
d = d*13*100/12;
|
||||||
p = (int) d;
|
p = (int) d;
|
||||||
send_USART(USART2,(p/10) + '0'); // Envoie le chiffre des dizaines
|
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,(p%10) + '0'); // Envoie le chiffre des unités
|
||||||
send_USART(USART2,'%');
|
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;
|
||||||
}
|
}
|
||||||
|
|
@ -3,5 +3,6 @@
|
||||||
|
|
||||||
void MyBatterie_Init(void);
|
void MyBatterie_Init(void);
|
||||||
void handler_ADC(void);
|
void handler_ADC(void);
|
||||||
|
void handler(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -9,11 +9,11 @@ void MySPI_Init(SPI_TypeDef * SPI){
|
||||||
// Initialisationdes PORTS IOs
|
// Initialisationdes PORTS IOs
|
||||||
MyGPIO_Init(GPIOA,4,Out_Ppull);
|
MyGPIO_Init(GPIOA,4,Out_Ppull);
|
||||||
MyGPIO_Init(GPIOA,5,AltOut_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);
|
MyGPIO_Init(GPIOA,7,AltOut_Ppull);
|
||||||
}
|
}
|
||||||
else if (SPI == SPI2) {
|
else if (SPI == SPI2) {
|
||||||
RCC->APB2ENR |= RCC_APB1ENR_SPI2EN;
|
RCC->APB1ENR |= RCC_APB1ENR_SPI2EN;
|
||||||
SPI->CR1 |= SPI_CR1_BR_1 | SPI_CR1_BR_2;
|
SPI->CR1 |= SPI_CR1_BR_1 | SPI_CR1_BR_2;
|
||||||
MyGPIO_Init(GPIOB,12,Out_Ppull);
|
MyGPIO_Init(GPIOB,12,Out_Ppull);
|
||||||
MyGPIO_Init(GPIOB,13,AltOut_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
|
while (!(SPI1->SR & SPI_SR_TXE)){} // Attend que DR soit vide
|
||||||
SPI1->DR = ByteToSend; // On met notre donnée dans DR
|
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_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
|
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
|
while (!(SPI1->SR & SPI_SR_TXE)){} // Attend que DR soit vide
|
||||||
SPI1->DR = 0x00; // Pour trasmettre la clock
|
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_RXNE)) {} // On attend de recevoir dans buffer de reception le byte
|
||||||
|
while (SPI1->SR & SPI_SR_BSY){}
|
||||||
return SPI1->DR;
|
return SPI1->DR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,15 +27,15 @@ void My_USART_Init(USART_TypeDef *USART){
|
||||||
}
|
}
|
||||||
USART->CR1 |= USART_CR1_UE; // Activation de l'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->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_TE; // Transmission validée
|
||||||
USART->CR1 |= USART_CR1_RE; // réception validée
|
USART->CR1 |= USART_CR1_RE; // réception validée
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void send_USART(USART_TypeDef *USART, char data){
|
void send_USART(USART_TypeDef *USART, char data){
|
||||||
USART->DR |= data; // Ecriture de la donnée dans le registre DR
|
USART->DR = data; // Ecriture de la donnée dans le registre DR
|
||||||
while(!(USART->SR & USART_SR_TXE)) {} // Attente de la fin de transmission
|
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){
|
char read_USART(USART_TypeDef *USART){
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue