Mercurial > public > ostc4
view Small_CPU/Inc/i2c.h @ 277:580822b5d3d1 IPC_Sync_Improvment_3
Rework SPI error handling.
SPI_Start_single_TxRx_with_Master evaluated the incoming data for a condition to send device instead of life data. In case of invalid input data this may cause unintended transmission of device data => now lifedata is send if incoming data is expected to be invalid
The SPI timeout monitoring was done at the beginning of the mode loop. A timeout may have been detected even if meanwhile valid data was received (this is evaluated at x20ms) => Moved the timeout monitoring after the handling of incoming data
author | ideenmodellierer |
---|---|
date | Sun, 28 Apr 2019 10:16:38 +0200 |
parents | 9ecc2e60418d |
children | cb3870f79e9d |
line wrap: on
line source
/* Define to prevent recursive inclusion -------------------------------------*/ #ifndef I2C_H #define I2C_H /* Pressure Sensor */ #define DEVICE_PRESSURE 0xEE // 2019 hardware (gen 3) will use 0xEC (MS5837), all other use 0xEE (MS5803) /* Compass/Accelerometer */ #define DEVICE_ACCELARATOR_MMA8452Q 0x38 // Hardware gen 1 (Two chip solution with MMA8452Q and HMC5883L) #define DEVICE_COMPASS_HMC5883L 0x3C // Hardware gen 1 #define DEVICE_COMPASS_303D 0x3C // Hardware gen 2 (Single chip solution LSM303D) #define DEVICE_COMPASS_303AGR 0x3C // Hardware gen 3 (Single chip solution LSM303AGR) /* Battery Gas Gauge */ #define DEVICE_BATTERYGAUGE 0xC8 // LTC2941 battery gauge /* Includes ------------------------------------------------------------------*/ #include "stm32f4xx_hal.h" HAL_StatusTypeDef I2C_Master_Transmit( uint16_t DevAddress, uint8_t *pData, uint16_t Size); HAL_StatusTypeDef I2C_Master_TransmitNoStop( uint16_t DevAddress, uint8_t *pData, uint16_t Size); HAL_StatusTypeDef I2C_Master_Receive( uint16_t DevAddress, uint8_t *pData, uint16_t Size); HAL_StatusTypeDef MX_I2C1_Init(void); void I2C_DeInit(void); HAL_StatusTypeDef I2C1_Status(void); GPIO_PinState MX_I2C1_TestAndClear(void); //void I2C_Error(void); #endif /* I2C_H */