From 56b0d1e7eda3babfb32ae8a7c683e553fbba856f Mon Sep 17 00:00:00 2001 From: kbracher Date: Tue, 25 Mar 2025 21:40:24 +0100 Subject: [PATCH] fix spurious errors during startup, maybe fix GPIO voltages --- .../Lib/ADBMS6830B_Driver/Core/Src/ADBMS_Abstraction.c | 2 +- AMS_Master_Code/Core/Src/main.c | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/AMS_Master_Code/Core/Lib/ADBMS6830B_Driver/Core/Src/ADBMS_Abstraction.c b/AMS_Master_Code/Core/Lib/ADBMS6830B_Driver/Core/Src/ADBMS_Abstraction.c index 34ef50b..cf7c84f 100644 --- a/AMS_Master_Code/Core/Lib/ADBMS6830B_Driver/Core/Src/ADBMS_Abstraction.c +++ b/AMS_Master_Code/Core/Lib/ADBMS6830B_Driver/Core/Src/ADBMS_Abstraction.c @@ -123,7 +123,7 @@ HAL_StatusTypeDef amsAuxAndStatusMeasurement(Cell_Module (*module)[N_BMS]) { } if (pollCMD(PLAUX) == HAL_BUSY) { - return HAL_BUSY; + //return HAL_BUSY; } CHECK_RETURN( diff --git a/AMS_Master_Code/Core/Src/main.c b/AMS_Master_Code/Core/Src/main.c index 41aa933..e376680 100644 --- a/AMS_Master_Code/Core/Src/main.c +++ b/AMS_Master_Code/Core/Src/main.c @@ -126,8 +126,14 @@ int main(void) continue; } error_count = 0; + count = 0; } status = AMS_Idle_Loop(); + if (count < 10) { // don't print errors for the first 10 loops while the BMS is starting up + count++; + HAL_Delay(100); + continue; + } if (status.status != ADBMS_NO_ERROR) { debug_log(LOG_LEVEL_ERROR, "AMS_Idle_Loop returned %u (%s) on BMS %d", status.status, ADBMS_Status_ToString(status.status), status.bms_id); error_count++; @@ -250,7 +256,9 @@ int main(void) /* USER CODE BEGIN 3 */ count++; - count &= 0b1111; // wrap around at 16 + if (count > 16) { + count = 11; // keep count from overflowing + } } /* USER CODE END 3 */ }