В профессиональном контексте я должен использовать vl53L0x. Этот датчик был выпущен в последнее время, наряду с его API, а это означает, что нет никакой помощи в Интернете еще:Несколько идентичных датчиков I2C с API vl53L0x (ST Microelectronics)
Этот API содержит некоторые исходные и заголовки файлов, которые я собирал с НКУ. Он отлично работает, несмотря на явно недостающие комментарии. Я запускаю память stm32 (NUCLEO-F401RE), которая управляет датчиком vl53L0x через шину I2C. Теперь я хочу добавить еще несколько датчиков vl53L0x на одну и ту же шину I2C и обратиться к этому документу (если вы хотите его прочитать, перейдите непосредственно в нижнюю половину страницы 5, проводка уже выполнена):
Принцип, который я уже применял на других датчиках, заключается в том, что все они начинаются с того же адреса. Затем вам необходимо активировать один, изменить его адрес, затем активировать следующий, изменить его адрес и т. Д.
К сожалению, ST Microelectronics не опубликовала список регистров I2C, поэтому я должен использовать их API для управлять несколькими датчиками. В приведенном выше документе объясняется, как это сделать. Среди прочего, он указывает:
In vl53L0x_platform.h API file
• Set VL53L0x_SINGLE_DEVICE_DRIVER macro to 0 so that API implementation will
be automatically adapted to a multi-device context.
Я посмотрел везде в папке API, я не смог найти никаких ссылок на макрос VL53L0x_SINGLE_DEVICE_DRIVER. Установка его на 0 ничего не изменит, так как эта строка отсутствует в файлах API. Кто-нибудь сталкивался с подобной проблемой?
Работает ли он, если вы не установите макрос VL53L0x_SINGLE_DEVICE_DRIVER? Вполне возможно, что API был изменен, чтобы всегда принимать несколько устройств, но документация не обновлялась. – Tim
Он отлично работает, если я этого не делаю, или если да. Это ничего не меняет. –
Означает ли это, что на ваш вопрос ответили? – Tim