Move doc comments to header
This commit is contained in:
		@ -16,13 +16,50 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
typedef enum { BQ_COMM_OK, BQ_COMM_ERR_HAL, BQ_COMM_ERR_CRC } BQ_Comm_Status;
 | 
					typedef enum { BQ_COMM_OK, BQ_COMM_ERR_HAL, BQ_COMM_ERR_CRC } BQ_Comm_Status;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @brief Defines UART and DMA Handle
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Always call the init routine before using any other function of the libary.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
void init_BQCom(UART_HandleTypeDef* uarthandle);
 | 
					void init_BQCom(UART_HandleTypeDef* uarthandle);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @brief Calculate CRC according to BQ spec.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param message_buffer Message buffer, including two bytes for the CRC. The
 | 
				
			||||||
 | 
					 * CRC will be written to the last two bytes.
 | 
				
			||||||
 | 
					 * @param bufferlength The length of message_buffer, including the two bytes for
 | 
				
			||||||
 | 
					 * the CRC.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @return 0 if the buffer is to small
 | 
				
			||||||
 | 
					 * @return 1 if the function was successful
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
uint16_t Calculate_CRC(uint8_t* message_buffer, uint16_t bufferlength);
 | 
					uint16_t Calculate_CRC(uint8_t* message_buffer, uint16_t bufferlength);
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @brief Checks if the CRC is correct
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @return 0 if the Buffer is too small or the CRC is incorrect
 | 
				
			||||||
 | 
					 * @return 1 if the CRC is correct
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
uint16_t Check_CRC(uint8_t* message_buffer, uint16_t bufferlength);
 | 
					uint16_t Check_CRC(uint8_t* message_buffer, uint16_t bufferlength);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @brief Writes data to a register of the BQ76.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param registeraddress specifies the register. Address definitions are
 | 
				
			||||||
 | 
					 * available in BQ_Register_Definitions.h
 | 
				
			||||||
 | 
					 * @param registersize defines the register size in bytes.
 | 
				
			||||||
 | 
					 * @param data defines the data written to the BQ
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
uint32_t BQ_Write_Register(uint8_t registeraddress, uint8_t registersize,
 | 
					uint32_t BQ_Write_Register(uint8_t registeraddress, uint8_t registersize,
 | 
				
			||||||
                           uint32_t data);
 | 
					                           uint32_t data);
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @brief Read the data of a register specified by its address
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param registeraddress specifies the register. Address definitions are
 | 
				
			||||||
 | 
					 * available in BQ_Register_Definitions.h
 | 
				
			||||||
 | 
					 * @param registersize defines the register size in bytes.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
uint8_t BQ_Read_Register(uint8_t registeraddress, uint8_t registersize,
 | 
					uint8_t BQ_Read_Register(uint8_t registeraddress, uint8_t registersize,
 | 
				
			||||||
                         uint32_t* data);
 | 
					                         uint32_t* data);
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@ -32,9 +69,14 @@ uint8_t BQ_Read_Register(uint8_t registeraddress, uint8_t registersize,
 | 
				
			|||||||
 * Buffer size should be 2xMeasured Voltages
 | 
					 * Buffer size should be 2xMeasured Voltages
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
BQ_Comm_Status BQ_ReadMeasurements(uint8_t* buffer, uint8_t bufferlength);
 | 
					BQ_Comm_Status BQ_ReadMeasurements(uint8_t* buffer, uint8_t bufferlength);
 | 
				
			||||||
uint8_t Communication_Reset();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @brief Hardware layer implementation of the UART transmit
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
uint8_t BQ_UART_Transmit(uint8_t* message_buffer, uint16_t bufferlength);
 | 
					uint8_t BQ_UART_Transmit(uint8_t* message_buffer, uint16_t bufferlength);
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @brief Hardware layer implementation of the UART receive
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
uint8_t BQ_UART_Receive(uint8_t* message_buffer, uint16_t bufferlength);
 | 
					uint8_t BQ_UART_Receive(uint8_t* message_buffer, uint16_t bufferlength);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
				
			|||||||
@ -39,21 +39,8 @@ const uint16_t crc16_table[256] = {
 | 
				
			|||||||
    0x4540, 0x8701, 0x47C0, 0x4680, 0x8641, 0x8201, 0x42C0, 0x4380, 0x8341,
 | 
					    0x4540, 0x8701, 0x47C0, 0x4680, 0x8641, 0x8201, 0x42C0, 0x4380, 0x8341,
 | 
				
			||||||
    0x4100, 0x81C1, 0x8081, 0x4040};
 | 
					    0x4100, 0x81C1, 0x8081, 0x4040};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*	Defines UART and DMA Handle
 | 
					 | 
				
			||||||
 *  Always use the Init Routine before using any other function of the Libary
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
void init_BQCom(UART_HandleTypeDef* uarthandle) { bq_uart = uarthandle; }
 | 
					void init_BQCom(UART_HandleTypeDef* uarthandle) { bq_uart = uarthandle; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Input Message Buffer with the Last two Bytes set to 0. The Last Bytes will be
 | 
					 | 
				
			||||||
 * the CRC after use of the Function
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Returns 0 if the buffer is to small
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Returns 1 if the Function was successfull
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
uint16_t Calculate_CRC(uint8_t* message_buffer, uint16_t bufferlength) {
 | 
					uint16_t Calculate_CRC(uint8_t* message_buffer, uint16_t bufferlength) {
 | 
				
			||||||
  uint16_t wCRC = 0;
 | 
					  uint16_t wCRC = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -74,13 +61,6 @@ uint16_t Calculate_CRC(uint8_t* message_buffer, uint16_t bufferlength) {
 | 
				
			|||||||
  return 1;
 | 
					  return 1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*Checks if the CRC is correct
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Returns 0 if the Buffer is too small or the CRC is incorrect
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Returns 1 if the CRC is correct
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
uint16_t Check_CRC(uint8_t* message_buffer, uint16_t bufferlength) {
 | 
					uint16_t Check_CRC(uint8_t* message_buffer, uint16_t bufferlength) {
 | 
				
			||||||
  uint16_t wCRC = 0;
 | 
					  uint16_t wCRC = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -106,17 +86,6 @@ uint16_t Check_CRC(uint8_t* message_buffer, uint16_t bufferlength) {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Writes data to a register of the BQ76
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * registeraddress specifies the register
 | 
					 | 
				
			||||||
 * Makros are available in BQ_Register_Definitions.h
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * registersize defines the register size in bytes
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * data defines the data written to the BQ
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
uint32_t BQ_Write_Register(uint8_t registeraddress, uint8_t registersize,
 | 
					uint32_t BQ_Write_Register(uint8_t registeraddress, uint8_t registersize,
 | 
				
			||||||
                           uint32_t data) {
 | 
					                           uint32_t data) {
 | 
				
			||||||
  uint8_t message[registersize + 5];
 | 
					  uint8_t message[registersize + 5];
 | 
				
			||||||
@ -136,13 +105,6 @@ uint32_t BQ_Write_Register(uint8_t registeraddress, uint8_t registersize,
 | 
				
			|||||||
  return 1;
 | 
					  return 1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*Read the Data of a Register specified by its Address
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Makros for register names are available in BQ_Register_Definitions.h
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * registersize defines the register size in bytes
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
uint8_t BQ_Read_Register(uint8_t registeraddress, uint8_t registersize,
 | 
					uint8_t BQ_Read_Register(uint8_t registeraddress, uint8_t registersize,
 | 
				
			||||||
                         uint32_t* data) {
 | 
					                         uint32_t* data) {
 | 
				
			||||||
  uint8_t message[6] = {0};
 | 
					  uint8_t message[6] = {0};
 | 
				
			||||||
@ -210,26 +172,14 @@ BQ_Comm_Status BQ_ReadMeasurements(uint8_t* buffer, uint8_t bufferlength) {
 | 
				
			|||||||
  return BQ_COMM_OK;
 | 
					  return BQ_COMM_OK;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Hardware Layer Implementation of the UART Transmit
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
uint8_t BQ_UART_Transmit(uint8_t* message_buffer, uint16_t bufferlength) {
 | 
					uint8_t BQ_UART_Transmit(uint8_t* message_buffer, uint16_t bufferlength) {
 | 
				
			||||||
  HAL_StatusTypeDef uartstate =
 | 
					  HAL_StatusTypeDef uartstate =
 | 
				
			||||||
      HAL_UART_Transmit(bq_uart, message_buffer, bufferlength, BQUARTTIMEOUT);
 | 
					      HAL_UART_Transmit(bq_uart, message_buffer, bufferlength, BQUARTTIMEOUT);
 | 
				
			||||||
  return (uint8_t)uartstate;
 | 
					  return (uint8_t)uartstate;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Hardware Layer Implementation of the UART Receive
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
uint8_t BQ_UART_Receive(uint8_t* message_buffer, uint16_t bufferlength) {
 | 
					uint8_t BQ_UART_Receive(uint8_t* message_buffer, uint16_t bufferlength) {
 | 
				
			||||||
  HAL_StatusTypeDef uartstate =
 | 
					  HAL_StatusTypeDef uartstate =
 | 
				
			||||||
      HAL_UART_Receive(bq_uart, message_buffer, bufferlength, BQUARTTIMEOUT);
 | 
					      HAL_UART_Receive(bq_uart, message_buffer, bufferlength, BQUARTTIMEOUT);
 | 
				
			||||||
  return (uint8_t)uartstate;
 | 
					  return (uint8_t)uartstate;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
/*Resets the Communication Interface of the BQ76
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
uint8_t Communication_Reset() { return 0; }
 | 
					 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user