Пытаюсь распечатать элементы в структуре на aruino и получаю эту ошибку на compliation
Я пишу код для измерения некоторых значений датчиков, хранения их в структуре и печати после определенного предела. Я использую Arduino 1.8.11, программируя DOIT ESP32 DEVKIT V1 Вот мой код
#include <ClosedCube_HDC1080.h>
#include <Wire.h>
RTC_DATA_ATTR int logCounter = 0;
ClosedCube_HDC1080 hdc1080;
typedef struct {
float Temp;
float Pressure;
} Records;
#define maxLogs 5 // store these many records before reset
#define sleepTimein_second 10 // sleeptime in secs
#define sleeptime = ((sleepTimein_second*uS_TO_S_FACTOR)); //Final deepsleep time in uS
RTC_DATA_ATTR Records Logs[maxLogs];
#define I2C_SDA 19 // HDC1080 SDA PIN to ESP32
#define I2C_SCL 22 // HDC1080 SCL PIN to ESP32
void setup() {
Serial.begin(115200);
Wire.begin(I2C_SDA, I2C_SCL);
hdc1080.begin(0x40);
Serial.println("Record new values");
Records[logCounter].Temp = hdc1080.readTemp(); // Units °C
Records[logCounter].Pressure = hdc1080.readHumi(); // Units %
logCounter++;
if (logCounter >= maxLogs) {
for (int i = 0; i < maxLogs; i++){
// Display records in CSV format to the serial port
Serial.println(i+",");
Serial.print(Records[i].Temp+",");
Serial.print(Records[i].Pressure);
}
logCounter = 0;
}
} else {
// check connection with HDC1080
Serial.println("Sorry but HDC1080 did not respond !");
}
// Go in deep sleep
esp_sleep_enable_timer_wakeup(sleeptime);
esp_deep_sleep_start();
}
После компиляции я получаю следующую ошибку
ожидаемое первичное выражение перед '[' токеном
Что я делаю не так?
Пожалуйста, помогите !!!
Заранее благодарю вас!
@P_K, 👍0
Обсуждение0
Смотрите также:
- ESP32 прекращает цикл после двух циклов
- Функция запуска при срабатывании
- Как запустить разные процедуры с разными интервалами
- Ошибка при попытке динамического моделирования температуры
- управлять некоторым выводом на основе некоторого параметра и rtc
- Какие накладные расходы и другие соображения существуют при использовании структуры по сравнению с классом?
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Как выбрать альтернативные контакты I2C на ESP32?
Это вопрос о C++, а не об Arduino. Проблема в том, что вы скопировали фрагменты кода откуда-то(https://diyprojects.io/esp32-store-temporary-data-rtc-memory-deep-sleep), не понимая, что он делает. Ошибка, на которую вы ссылаетесь, вызвана тем фактом, что вы используете " тип "(тип "структуры", который вы объявили как "Записи"), как если бы это была переменная, Вы не можете этого сделать. Вместо этого вы должны использовать
Logs []
, который определен в вашем коде как массив типа "Records`". Есть и другие проблемы, такие как выходной код CSV,которые я оставлю вам для устранения неполадок., @StarCatи исправьте это indentation.to смотрите, чтобы у вас было два"} "перед " else", @Juraj
Спасибо @StarCat, что ваши предложения помогли. Когда я работал над Arduino IDE, я думал, что это связано с Arduino. И нет, я не копировал-вставил код откуда-то. Огромное спасибо!!, @P_K