/* * ADBMS_LL_Driver.h * * Created on: 05.06.2022 * Author: max */ #ifndef ADBMS_LL_DRIVER_H_ #define ADBMS_LL_DRIVER_H_ #define TARGET_STM32 #include "main.h" #ifdef TARGET_STM32 typedef uint8_t uint8; typedef uint16_t uint16; typedef uint32_t uint32; #endif uint8 adbmsDriverInit(SPI_HandleTypeDef* hspi); uint8 calculateCommandPEC(uint8* data, uint8 datalen); uint16 updateCommandPEC(uint16 currentPEC, uint8 din); uint8 checkCommandPEC(uint8* data, uint8 datalen); uint8 calculateDataPEC(uint8* data, uint8 datalen); uint16 updateDataPEC(uint16 currentPEC, uint8 din); uint8 checkDataPEC(uint8* data, uint8 datalen); uint8 writeCMD(uint16 command, uint8* args, uint8 arglen); uint8 readCMD(uint16 command, uint8* buffer, uint8 buflen); uint8 pollCMD(uint16 command); void mcuAdbmsCSLow(); void mcuAdbmsCSHigh(); uint8 mcuSPITransmit(uint8* buffer, uint8 buffersize); uint8 mcuSPIReceive(uint8* buffer, uint8 buffersize); uint8 mcuSPITransmitReceive(uint8* rxbuffer, uint8* txbuffer, uint8 buffersize); uint8 wakeUpCmd(); void mcuDelay(uint16 delay); #endif /* ADBMS_LL_DRIVER_H_ */