Ошибка транзакции i2C на антенне ISIS GomSpace

В настоящее время я программирую для CubeSat Satellite. Я работаю над компонентом антенны, чтобы получить статус антенны. Однако я столкнулся с проблемой с передачей I2C.

Я сузил проблему до проблемы приемника I2C, и я не знаю, что вызывает такую ​​проблему. Printf("ошибка rx \r\n") был добавлен, чтобы сузить проблему.

Адрес I2C определенно правильный на антенне ИГИЛ.

if (isis_ants_delay_cmd(i2c_addr, &tx, tx_len, &rx, rx_len, 10) != E_NO_ERR) {
    printf("I2C transaction error 1\r\n");
    return -1;
}

static int isis_ants_delay_cmd(uint8_t addr, void * txbuf, size_t txlen, void * rxbuf, size_t rxlen, int delay) {
    if (i2c_master_transaction(0, addr, txbuf, txlen, NULL, 0, 50) != E_NO_ERR) {
        printf("tx error\r\n");
        return 0;
    }
    vTaskDelay(delay/portTICK_RATE_MS);
    if (i2c_master_transaction(0, addr, NULL, 0, rxbuf, rxlen, 50) != E_NO_ERR) {
        printf("rx error\r\n");
        return 0;
    }

    return E_NO_ERR;
}

Вывод на консоль:

Наноминд # муравей статус
Получение статуса антенны.
ошибка RX
Ошибка транзакции I2C 1

0 ответов

Другие вопросы по тегам