#include "DS_I2CScanner.h" void DS_I2CScan(I2C_HandleTypeDef *I2C, uint8_t *Result, uint8_t maxNumResults) { HAL_StatusTypeDef HAL_result = HAL_ERROR; uint8_t NumOfResult = 0; for (uint8_t i = 0; i < maxNumResults; i++) { Result[i] = 0; } // 2. Перебор стандартных 7-битных адресов (от 1 до 127) for (uint8_t addr = 1; addr < 128; addr++) { if (NumOfResult >= maxNumResults) { break; } // Передаем адрес со сдвигом влево (addr << 1) HAL_result = HAL_I2C_IsDeviceReady(I2C, (addr << 1), 3, 50); if (HAL_result == HAL_OK) { Result[NumOfResult] = (addr << 1); NumOfResult++; } } }