Ошибка транзакции 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