#ifndef BQ_COM #define BQ_COM #include "BQ_Register_Definitions.h" #include "stm32f4xx_hal.h" #define FRM_WRT_NR 0x90 #define FRM_WRT_R 0x81 #define DEFAULTNUMOFCELLS 10 #define DEFAULTNUMOFDIETEMPS 0 #define BQUARTTIMEOUT 200 void init_BQCom(UART_HandleTypeDef* uarthandle); uint16_t Calculate_CRC(uint8_t* message_buffer, uint16_t bufferlength); uint16_t Check_CRC(uint8_t* message_buffer, uint16_t bufferlength); uint32_t BQ_Write_Register(uint8_t registeraddress, uint8_t registersize, uint32_t data); uint8_t BQ_Read_Register(uint8_t registeraddress, uint8_t registersize, uint32_t* data); uint32_t BQ_ReadMeasurements(uint8_t* buffer, uint8_t bufferlength); uint8_t Communication_Reset(); uint8_t BQ_UART_Transmit(uint8_t* message_buffer, uint16_t bufferlength); uint8_t BQ_UART_Receive(uint8_t* message_buffer, uint16_t bufferlength); #endif