Можно ли отправить массив с плавающей запятой через I2c?
Я сам пробовал это несколько раз, но так и не смог отправить или получить его должным образом. Я спрашиваю себя, возможно ли это, и если да, то может ли кто-нибудь объяснить, как?
Удачи!
@zwiebelslayer, 👍0
Обсуждение1 ответ
▲ 1
Ниже приведена простая переработка руководства по проводному соединению главного записывающего устройства и подчиненного приемника, https://www.arduino.cc/ en/Tutorial/MasterWriter, для вектора чисел с плавающей запятой.
Набросок мастера
#include <Wire.h>
const int DEVICE = 8;
void setup() {
Wire.begin();
Serial.begin(9600);
}
void loop() {
const int VEC_MAX = 6;
float vec[VEC_MAX];
uint8_t* vp = (uint8_t*) vec;
Wire.requestFrom(DEVICE, sizeof(vec));
while (Wire.available()) {
*vp++ = Wire.read();
}
for (int i = 0; i < VEC_MAX; i++) {
Serial.println(vec[i]);
}
delay(500);
}
Скетч подчиненного приемника
#include <Wire.h>
const int DEVICE = 8;
const int VEC_MAX = 6;
float vec[VEC_MAX] = { ... };
void setup() {
Wire.begin(DEVICE);
Wire.onRequest(requestEvent);
}
void loop() {
delay(100);
}
void requestEvent() {
Wire.write((uint8_t*) vec, sizeof(vec));
}
Можно ли отправить массив с плавающей точкой через I2c
Поэтому я бы ответил - Да.
,
@Mikael Patel
Смотрите также:
- Отправка и получение различных типов данных через I2C в Arduino
- Как работают функции вне цикла void?
- Как отображать переменные на 0,96-дюймовом OLED-дисплее с библиотекой u8glib?
- OVF в последовательном мониторе вместо данных
- ЖК-дисплей I2C отображает странные символы
- Соединение I2C зависает Ведущий если ведомый отключается
- Экран LCD 16*02 I2C показывает только первый напечатанный символ
- Ведомое устройство Arduino с двумя мастерами, использующими одну и ту же шину I2C?
Возможно. Вы дали команду отправить оба байта с плавающей запятой и правильно соединить их после этого. Пожалуйста, укажите свой код в вопросе, чтобы мы могли вам помочь., @chrisl