Compare commits
2
Commits
ai-context
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
46d623cd4d | ||
|
|
18771f535d |
+23
-18
@@ -2,24 +2,29 @@
|
||||
|
||||
void DS_I2CScan(I2C_HandleTypeDef *I2C, uint8_t *Result, uint8_t maxNumResults)
|
||||
{
|
||||
HAL_StatusTypeDef HAL_result = HAL_ERROR;
|
||||
uint8_t NumOfResult = 0;
|
||||
HAL_StatusTypeDef HAL_result = HAL_ERROR;
|
||||
uint8_t NumOfResult = 0;
|
||||
|
||||
for (uint8_t i = 0; i < maxNumResults - 1; i++)
|
||||
{
|
||||
Result[i] = 0;
|
||||
}
|
||||
|
||||
for (uint8_t addr = 0; addr < 0xFF; ++addr)
|
||||
{
|
||||
HAL_result = HAL_I2C_IsDeviceReady(I2C, addr, 3, 1000);
|
||||
if (HAL_result == HAL_OK)
|
||||
for (uint8_t i = 0; i < maxNumResults; i++)
|
||||
{
|
||||
Result[NumOfResult] = addr;
|
||||
if (NumOfResult < maxNumResults - 1)
|
||||
{
|
||||
NumOfResult++;
|
||||
}
|
||||
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++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user