From ee42fc0bbcfa99a32ebb808a51faf714cbbbc9c8 Mon Sep 17 00:00:00 2001 From: Pcornat Date: Wed, 12 Feb 2025 21:13:54 +0100 Subject: [PATCH] Configuring sensor --- Src/main.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 52 insertions(+), 6 deletions(-) diff --git a/Src/main.c b/Src/main.c index 0e3ca18..f10dec6 100644 --- a/Src/main.c +++ b/Src/main.c @@ -18,6 +18,7 @@ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" +#include "sensor_registers.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ @@ -62,6 +63,49 @@ static void MX_I2C1_Init(void); /* USER CODE END 0 */ +typedef struct config_s { + const uint8_t address; + const uint8_t write_read; + uint8_t command[2]; +} Config; + +void configure_sensor() { + const uint16_t size_msg = 2; { + const uint8_t wakeup_cmd = 1; + const uint8_t data[] = { config_reg, wakeup_cmd }; + HAL_I2C_Master_Transmit(&hi2c1, sensor_addr, data, size_msg, 6); + } + HAL_Delay(6); { + const uint8_t data[] = { mbit_trim_reg, 0x0C }; + HAL_I2C_Master_Transmit(&hi2c1, sensor_addr, data, size_msg, 6); + } + HAL_Delay(6); { + const uint8_t data[] = { bias_trim_top_reg, 0x0C }; + HAL_I2C_Master_Transmit(&hi2c1, sensor_addr, data, size_msg, 6); + } + HAL_Delay(6); { + const uint8_t data[] = { bias_trim_bot_reg, 0x0C }; + HAL_I2C_Master_Transmit(&hi2c1, sensor_addr, data, size_msg, 6); + } + HAL_Delay(6); { + const uint8_t data[] = { clk_trim_reg, 0x14 }; + HAL_I2C_Master_Transmit(&hi2c1, sensor_addr, data, size_msg, 6); + } + HAL_Delay(6); { + const uint8_t data[] = { bpa_trim_top_reg, 0x0C }; + HAL_I2C_Master_Transmit(&hi2c1, sensor_addr, data, size_msg, 6); + } + HAL_Delay(6); { + const uint8_t data[] = { bpa_trim_bot_reg, 0x0C }; + HAL_I2C_Master_Transmit(&hi2c1, sensor_addr, data, size_msg, 6); + } + HAL_Delay(6); { + const uint8_t data[] = { pu_reg, 0x88 }; + HAL_I2C_Master_Transmit(&hi2c1, sensor_addr, data, size_msg, 6); + } + HAL_Delay(6); +} + /** * @brief The application entry point. * @retval int @@ -91,6 +135,14 @@ int main(void) { MX_GPIO_Init(); MX_I2C1_Init(); /* USER CODE BEGIN 2 */ + // TODO: configs + configure_sensor(); { + uint8_t data = status_reg; + uint8_t received_data = 0; + HAL_I2C_Master_Transmit(&hi2c1, sensor_addr, &data, 1, 5); + HAL_Delay(30); + HAL_I2C_Master_Receive(&hi2c1, sensor_addr | 1, &received_data, 1, 5); + } /* USER CODE END 2 */ @@ -106,7 +158,6 @@ int main(void) { /** * @brief System Clock Configuration - * @retval None */ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = { 0 }; @@ -146,8 +197,6 @@ void SystemClock_Config(void) { /** * @brief I2C1 Initialization Function - * @param None - * @retval None */ static void MX_I2C1_Init(void) { /* USER CODE BEGIN I2C1_Init 0 */ @@ -188,8 +237,6 @@ static void MX_I2C1_Init(void) { /** * @brief GPIO Initialization Function - * @param None - * @retval None */ static void MX_GPIO_Init(void) { /* USER CODE BEGIN MX_GPIO_Init_1 */ @@ -208,7 +255,6 @@ static void MX_GPIO_Init(void) { /** * @brief This function is executed in case of error occurrence. - * @retval None */ void Error_Handler(void) { /* USER CODE BEGIN Error_Handler_Debug */