Что за ошибка exit status 1 array must be initialized with a brace-enclosed initializer
- Войдите на сайт для отправки комментариев
Втр, 21/05/2019 - 23:36
int ppp[] = {1, 2, 3};
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <nRF24L01.h> // библиотека для nRF24L01+
#include <RF24.h>
#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI
unsigned long delayTime;
const uint64_t pipe = 0xF0F1F2F3F4LL; // идентификатор передачи
RF24 radio(7, 8);
void setup() {
Serial.begin(9600);
while (!Serial); // time to get serial running
Serial.println(F("BME280 test"));
unsigned status;
// default settings
// (you can also pass in a Wire library object like &Wire2)
status = bme.begin();
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring, address, sensor ID!");
Serial.print("SensorID was: 0x"); Serial.println(bme.sensorID(), 16);
Serial.print(" ID of 0xFF probably means a bad address, a BMP 180 or BMP 085\n");
Serial.print(" ID of 0x56-0x58 represents a BMP 280,\n");
Serial.print(" ID of 0x60 represents a BME 280.\n");
Serial.print(" ID of 0x61 represents a BME 680.\n");
while (1);
}
Serial.println("-- Default Test --");
delayTime = 1000;
Serial.println();
radio.begin(); // включаем радио модуль
radio.setChannel(0); // выбираем канал (от 0 до 127)
// скорость: RF24_250KBPS, RF24_1MBPS или RF24_2MBPS
radio.setDataRate(RF24_1MBPS);
// мощность: RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_MED=-6dBM
radio.setPALevel(RF24_PA_HIGH);
radio.openWritingPipe(pipe); // открываем трубу на передачу
radio.stopListening();
}
void loop() {
int t = bme.readTemperature();
int ppp[1] = t;
int data = ppp[]; // читаем значение с датчика
radio.write(&data, sizeof(data)); // отправляем данные и указываем байты
Serial.println(data); // выводим данные на монитор порта
delay(1000);
}
void printValues() {
Serial.print("Temperature = ");
Serial.print(bme.readTemperature());
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println(" hPa");
Serial.print("Approx. Altitude = ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(" m");
Serial.print("Humidity = ");
Serial.print(bme.readHumidity());
Serial.println(" %");
Serial.println();
}
ругается на 63 строку
http://arduino.ru/Reference/Array
ругается на 63 строку
исправите строку 63 - будет ругаться на строку 64. Прочитайте внимательно главу учебника про массивы.
Прочел это http://arduino.ru/Reference/Array, разобрался более менее, спасибо. Но как не странно появилось еще одна проблема, причем довольно странная. При передачи переменной t и p все приходит как положено, но вот с переменной v проблема, приходит число 516, что не так?
передатчик:
int ppp[] = {1, 2, 3}; #include <Wire.h> #include <SPI.h> #include <Adafruit_Sensor.h> #include <Adafruit_BME280.h> #include <nRF24L01.h> // библиотека для nRF24L01+ #include <RF24.h> #define BME_SCK 13 #define BME_MISO 12 #define BME_MOSI 11 #define BME_CS 10 #define SEALEVELPRESSURE_HPA (1013.25) Adafruit_BME280 bme; // I2C //Adafruit_BME280 bme(BME_CS); // hardware SPI //Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI unsigned long delayTime; const uint64_t pipe = 0xF0F1F2F3F4LL; // идентификатор передачи RF24 radio(7, 8); void setup() { Serial.begin(9600); while (!Serial); // time to get serial running Serial.println(F("BME280 test")); unsigned status; // default settings // (you can also pass in a Wire library object like &Wire2) status = bme.begin(); if (!status) { Serial.println("Could not find a valid BME280 sensor, check wiring, address, sensor ID!"); Serial.print("SensorID was: 0x"); Serial.println(bme.sensorID(), 16); Serial.print(" ID of 0xFF probably means a bad address, a BMP 180 or BMP 085\n"); Serial.print(" ID of 0x56-0x58 represents a BMP 280,\n"); Serial.print(" ID of 0x60 represents a BME 280.\n"); Serial.print(" ID of 0x61 represents a BME 680.\n"); while (1); } Serial.println("-- Default Test --"); delayTime = 1000; Serial.println(); radio.begin(); // включаем радио модуль radio.setChannel(0); // выбираем канал (от 0 до 127) // скорость: RF24_250KBPS, RF24_1MBPS или RF24_2MBPS radio.setDataRate(RF24_1MBPS); // мощность: RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_MED=-6dBM radio.setPALevel(RF24_PA_HIGH); radio.openWritingPipe(pipe); // открываем трубу на передачу radio.stopListening(); } void loop() { int t = bme.readTemperature(); Serial.print("темп = "); Serial.println(t); ppp[0] = t; int p = bme.readPressure() / 100.0F; Serial.print("давл = "); Serial.println(p); ppp[1] = p; int v = bme.readHumidity(); Serial.print("влаж = "); Serial.println(v); ppp[2] = v; radio.write(&ppp, sizeof(ppp)); // отправляем данные и указываем байты // выводим данные на монитор порта delay(1000); } void printValues() { Serial.print("Temperature = "); Serial.print(bme.readTemperature()); Serial.println(" *C"); Serial.print("Pressure = "); Serial.print(bme.readPressure() / 100.0F); Serial.println(" hPa"); Serial.print("Approx. Altitude = "); Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA)); Serial.println(" m"); Serial.print("Humidity = "); Serial.print(bme.readHumidity()); Serial.println(" %"); Serial.println(); }Приемник:
#include <SPI.h> // библиотека для протокола SPI #include <nRF24L01.h> // библиотека для nRF24L01+ #include <RF24.h> // библиотека для радио модуля int data[2]; const uint64_t pipe = 0xF0F1F2F3F4LL; // идентификатор передачи RF24 radio(31,30); // Для MEGA2560 замените на RF24 radio(9,53); void setup() { Serial.begin(9600); // запускаем последовательный порт radio.begin(); // включаем радио модуль radio.setChannel(0); // выбираем канал (от 0 до 127) // скорость: RF24_250KBPS, RF24_1MBPS или RF24_2MBPS radio.setDataRate(RF24_1MBPS); // мощность: RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_MED=-6dBM radio.setPALevel(RF24_PA_HIGH); radio.openReadingPipe(1, pipe); // открываем первую трубу radio.startListening(); // начинаем слушать трубу } void loop() { if (radio.available()) // проверяем буфер обмена { radio.read(&data, sizeof(data)); // читаем данные Serial.print("темп = "); Serial.println(data[0]); delay(10); Serial.print("давл = "); Serial.println(data[1]); delay(10); Serial.print("влаж = "); Serial.println(data[2]); delay(10); } }а сколько элементов в этом массиве
intdata[2];?
Поменял в приемнике строку 5 на
И заработало
а сколько элементов в этом массиве
intdata[2];?
Помоему 3 элемента, 0, 1 и 2, разве нет?
Все понял, невнимательно читал оказывается