Driver SPI v3

This commit is contained in:
leo 2025-11-22 23:11:24 +01:00
parent c241703a6f
commit deaa776d14

View file

@ -31,20 +31,16 @@ void MySPI_Init(SPI_TypeDef * SPI){
} }
void MySPI_Send(char ByteToSend){ void MySPI_Send(char ByteToSend){
MySPI_Clear_NSS(); // Debut transmission
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
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
MySPI_Set_NSS(); // Fin transmission
} }
char MySPI_Read(void){ char MySPI_Read(void){
MySPI_Clear_NSS(); //Début transmission
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 MySPI_Send(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
MySPI_Set_NSS(); // Fin transmission
return SPI1->DR; return SPI1->DR;
} }