Я правильно подключил магнитометр к VCC, GND, SDA и SCL.Затем в adb shell
я использую pio i2c I2C1 0x3D read-raw 1
, и это дает мне [WARNING:client_errors.cc(35)] error 6: No such device or address
Возможно, в этой команде есть пара неправильных вещей, в соответствии с таблицей HMC5883L :
- Устройство использует основанный на регистре доступ, что означает, что необработанное чтение может завершиться неудачей.Вы должны использовать команду типа
read-reg-byte
для проверки связи с устройством. - Адрес устройства I2C -
0x1E
.Таблица данных дает вам заполненный 8-битный формат адреса в полном байте (который равен 0x3D
и 0x3C
, в зависимости от бита R / W), что немного сбивает с толку.
Таким образом, лучшая команда для отправки и проверки вашего устройства будет такой, которая должна сообщать значение регистра STATUS
:
$ pio i2c I2C1 0x1E read-reg-byte 0x09
Если вы по-прежнему получаете ту же ошибку с указанным вышекоманду, проверьте схему выводов , чтобы убедиться, что вы подключены к правому порту I2C (I2C1 против I2C2).