#include #include #include #include #include #include //Pin GPIOA_9 et GPIOA_10 sont pris par USART /* I2C SDA IN/OUT I2C SCL OUT */ //il faut recuperer le data qui sort /* SPI1_NSS PA4 - Utilisé NSS = 0 -> slave active NSS = 1 -> slave inactive SPI1_SCK PA5 SPI1_MISO PA6 SPI1_MOSI PA7 TIM3 CH3 PB0 0x32 50 DATAX0 R 00000000 X-Axis Data 0 0x33 51 DATAX1 R 00000000 X-Axis Data 1 0x34 52 DATAY0 R 00000000 Y-Axis Data 0 0x35 53 DATAY1 R 00000000 Y-Axis Data 1 0x36 54 DATAZ0 R 00000000 Z-Axis Data 0 0x37 55 DATAZ1 R 00000000 Z-Axis Data 1 */ void initAccelo(void){ MySPI_Init(SPI1); //Active le SCK } // send bits, les bits inclus en char envoyés: RW MB Adress_bit5 @4 @3 @2 @1 @0 //RW: R = 1 et W = 0 //MB à 1 veut measurement et MB à 0 Standby uint16_t * RecupAccelo(void){ //Renvoie 48 en forme des chars static uint16_t Messias[3]; //On lit X0 MySPI_Clear_NSS();//Mettre la broche PA4 à 0 MySPI_Send(0b11110010); //Lecture de X0 et MB à 1 pour garder les valeurs uint16_t X0 = MySPI_Read(); MySPI_Set_NSS(); //Mettre la broche PA4 à 1 //On lit X1 MySPI_Clear_NSS();//Mettre la broche PA4 à 0 MySPI_Send(0b10110011); //Lecture de X1 Messias[0] = X0 | (MySPI_Read() << 8); MySPI_Set_NSS(); //Mettre la broche PA4 à 1 //On lit Y0 MySPI_Clear_NSS();//Mettre la broche PA4 à 0 MySPI_Send(0b10110100); //Lecture de Y0 uint16_t Y0 = MySPI_Read(); MySPI_Set_NSS(); //Mettre la broche PA4 à 1 //On lit Y1 MySPI_Clear_NSS();//Mettre la broche PA4 à 0 MySPI_Send(0b10110101); //Lecture de Y1 Messias[1] = Y0 | (MySPI_Read() << 8); MySPI_Set_NSS(); //Mettre la broche PA4 à 1 //On lit Z0 MySPI_Clear_NSS();//Mettre la broche PA4 à 0 MySPI_Send(0b10110110); //Lecture de Z0 uint16_t Z0 = MySPI_Read(); MySPI_Set_NSS(); //Mettre la broche PA4 à 1 //On lit Z1 MySPI_Clear_NSS();//Mettre la broche PA4 à 0 MySPI_Send(0b10110111); //Lecture de Z1 Messias[2] = Z0 | (MySPI_Read() << 8); MySPI_Set_NSS(); //Mettre la broche PA4 à 1 return Messias; }