Официальный сайт компании Arduino по адресу arduino.cc
i2c последовательное чтения регистров
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вс, 08/04/2018 - 09:39
пытаюсь считать регистры gy-291
такой вопрос возможно ли считать потоком регистры или каждый раз надо перезапускать протокол для обращения к регистрам.
я пользоюсь данной способом считывания
#include <Wire.h> uint8_t IMUAddress = 0x53; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { uint16_t date[3]; data[0] = i2cRead(0x1E,8); Wire.endTransmission(true); data[1] = i2cRead(0x1F,8); Wire.endTransmission(true); date[2]=((data[0] << 8) | data[1]); Serial.print(date[2]); } uint8_t i2cRead(uint8_t registerAddress, uint8_t nbytes) { uint8_t* data = i2cRead(0x3B,14); uint8_t date; Wire.beginTransmission(IMUAddress); Wire.write(registerAddress); Wire.endTransmission(false); Wire.requestFrom(IMUAddress, nbytes); for(uint8_t i = 0; i < nbytes; i++) data = Wire.read(); return data; }
не тот скетч, исправил.
пытаюсь считать регистры gy-291
такой вопрос возможно ли считать потоком регистры или каждый раз надо перезапускать протокол для обращения к регистрам.
я пользоюсь данной способом считывания
Данная функция чтения вообще ерунду какую-то делает. Какой смысл в цикле на строках 23-24?
https://www.arduino.cc/en/Tutorial/MasterReader