dmitrij9992905
New member
Доброго времени суток!
Пишу в esp-idf для ESP32. Хочу подключить тюнер RDA5807M к ESP32, но при попытке прочитать из него данные выводится ошибка i2c null address error. Мой код:
Код примера:
Код ошибки 263. Что я делаю не так?
Та же тема на англоязычном форуме: RDA5807M gets i2c commands but ESP32 cannot read (i2c null address error) - ESP32 Forum
Пишу в esp-idf для ESP32. Хочу подключить тюнер RDA5807M к ESP32, но при попытке прочитать из него данные выводится ошибка i2c null address error. Мой код:
Код:
uint16_t getRegister(uint8_t reg) {
uint16_t result;
uint8_t h = 0;
uint8_t l = 0; // Действуем по алгоритму, описанному в документации ESP-IDF
i2c_cmd_handle_t cmd = i2c_cmd_link_create();
i2c_master_start(cmd);
i2c_master_write_byte(cmd, (RDA5807M_I2C_ADDR_RANDOM | WRITE_BIT), ACK_CHECK_EN);
//i2c_master_write_byte(cmd, 0b00100010, ACK_CHECK_EN);
i2c_master_write_byte(cmd, reg, ACK_CHECK_EN);
i2c_master_stop(cmd);
i2c_master_start(cmd);
i2c_master_write_byte(cmd, (RDA5807M_I2C_ADDR_RANDOM | READ_BIT), ACK_CHECK_EN);
//i2c_master_write_byte(cmd, 0b00100011, ACK_CHECK_EN);
i2c_master_read_byte(cmd, h, ACK_VAL);
i2c_master_read_byte(cmd, l, NACK_VAL);
i2c_master_stop(cmd); esp_err_t ret =
i2c_master_cmd_begin(i2c_port_num, cmd, 500 / portTICK_RATE_MS);
i2c_cmd_link_delete(cmd);
// Складываем два байта в слово и выдаем
result = (uint16_t)h « 8;
result |= l;
return result;
}
Код:
static esp_err_t i2c_example_master_read_slave(i2c_port_t i2c_num, uint8_t* data_rd, size_t size) {
if (size == 0) {
return ESP_OK;
}
i2c_cmd_handle_t cmd = i2c_cmd_link_create();
i2c_master_start(cmd);
i2c_master_write_byte(cmd, ( ESP_SLAVE_ADDR « 1 ) | READ_BIT, ACK_CHECK_EN);
if (size > 1) {
i2c_master_read(cmd, data_rd, size - 1, ACK_VAL);
}
i2c_master_read_byte(cmd, data_rd + size - 1, NACK_VAL);
i2c_master_stop(cmd);
esp_err_t ret = i2c_master_cmd_begin(i2c_num, cmd, 1000 / portTICK_RATE_MS);
i2c_cmd_link_delete(cmd);
return ret;
}
Та же тема на англоязычном форуме: RDA5807M gets i2c commands but ESP32 cannot read (i2c null address error) - ESP32 Forum