Ошибка транзакции i2C на антенне ISIS GomSpace - PullRequest
0 голосов
/ 17 сентября 2018

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

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

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

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;
}

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

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

...