Ошибка компиляции: недопустимое преобразование из 'int*' в 'int32_t*' {также известное как 'long int*'} [-fpermissive]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка компиляции: недопустимое преобразование из 'int*' в 'int32_t*' {также известное как 'long int*'} [-fpermissive]

Сообщение Anonymous »

Я заказал LilyGo T5 4,7-дюймовый экран E-ink нового поколения со встроенным esp32 S3
поэтому я установил необходимые библиотеки и менеджер плат.
Я выполнил все эти шаги, которые я выполнил. Здесь показаны шаги, как показано на втором изображении.
Это вкладка инструментов в Ardu IDE.
Но я могу сделать что угодно, и все время появляются одни и те же ошибки.
это половина вывода. но указывает на ту же ошибку. Сообщение об ошибке внизу.
Вот мой код

Код: Выделить всё

#ifndef BOARD_HAS_PSRAM
#error "Please enable PSRAM !!!"
#endif

#include 
#include "epd_driver.h"
#include "font/firasans.h"
#include "esp_adc_cal.h"
#include 
#include 
#include 
#include "image/logo.h"
#include "pins.h"

#if defined(T5_47_PLUS)
#include "pcf8563.h"
#include 
#endif

#if defined(T5_47_PLUS)
PCF8563_Class rtc;
#endif

int vref = 1100;

void setup()
{
Serial.begin(115200);
delay(1000);

char buf[128];
/**
* SD Card test
* Only as a test SdCard hardware, use example reference
* https://github.com/espressif/arduino-esp32/tree/master/libraries/SD/examples
*/
SPI.begin(SD_SCLK, SD_MISO, SD_MOSI, SD_CS);
// SD_MMC.setPins(SD_SCLK, SD_MOSI, SD_MISO);
// bool rlst = SD_MMC.begin("/sdcard", true);
bool rlst = SD.begin(SD_CS, SPI);
if (!rlst) {
Serial.println("SD init failed");
snprintf(buf, 128, "➸ No detected SdCard");
} else {
Serial.println("SD init success");
snprintf(buf, 128,
"➸ Detected SdCard insert:%.2f GB",
SD.cardSize() / 1024.0 / 1024.0 / 1024.0
);
}

// Correct the ADC reference voltage
esp_adc_cal_characteristics_t adc_chars;
#if defined(T5_47)
esp_adc_cal_value_t val_type = esp_adc_cal_characterize(
ADC_UNIT_1,
ADC_ATTEN_DB_11,
ADC_WIDTH_BIT_12,
1100,
&adc_chars
);
#else
esp_adc_cal_value_t val_type = esp_adc_cal_characterize(
ADC_UNIT_2,
ADC_ATTEN_DB_11,
ADC_WIDTH_BIT_12,
1100,
&adc_chars
);
#endif
if (val_type == ESP_ADC_CAL_VAL_EFUSE_VREF) {
Serial.printf("eFuse Vref: %umV\r\n", adc_chars.vref);
vref = adc_chars.vref;
}

#if defined(T5_47_PLUS)
Wire.begin(TOUCH_SDA, TOUCH_SCL);
rtc.begin();
rtc.setDateTime(2022, 6, 30, 0, 0, 0);
#endif

epd_init();

Rect_t area = {
.x = 230,
.y = 20,
.width = logo_width,
.height = logo_height,
};

epd_poweron();
epd_clear();
// epd_draw_grayscale_image(area, (uint8_t *)logo_data);
epd_draw_image(area, (uint8_t *)logo_data, BLACK_ON_WHITE);
epd_poweroff();

int cursor_x = 200;
int cursor_y = 250;

const char *string1 = "➸ 16 color grayscale  😀 \n";
const char *string2 = "➸ Use with 4.7\" EPDs 😍 \n";
const char *string3 = "➸ High-quality font rendering ✎🙋";
const char *string4 = "➸ ~630ms for full frame draw 🚀\n";

epd_poweron();

writeln((GFXfont *)&FiraSans, buf, &cursor_x, &cursor_y, NULL);
delay(500);
cursor_x = 200;
cursor_y += 50;
writeln((GFXfont *)&FiraSans, string1, &cursor_x, &cursor_y, NULL);
delay(500);
cursor_x = 200;
cursor_y += 50;
writeln((GFXfont *)&FiraSans, string2, &cursor_x, &cursor_y, NULL);
delay(500);
cursor_x = 200;
cursor_y += 50;
writeln((GFXfont *)&FiraSans, string3, &cursor_x, &cursor_y, NULL);
delay(500);
cursor_x = 200;
cursor_y += 50;
writeln((GFXfont *)&FiraSans, string4, &cursor_x, &cursor_y, NULL);
delay(500);

epd_poweroff();
}

void loop()
{
// When reading the battery voltage, POWER_EN must be turned on
epd_poweron();
delay(10); // Make adc measurement more accurate
uint16_t v = analogRead(BATT_PIN);
float battery_voltage = ((float)v / 4095.0) * 2.0 * 3.3 * (vref / 1000.0);
String voltage = "➸ Voltage: " + String(battery_voltage) + "V";
#if defined(T5_47_PLUS)
voltage = voltage + String("  (") + rtc.formatDateTime(PCF_TIMEFORMAT_YYYY_MM_DD_H_M_S) + String(")");
#endif
Serial.println(voltage);

Rect_t area = {
.x = 200,
.y = 460,
#if defined(T5_47_PLUS)
.width = 700,
#else
.width = 320,
#endif
.height = 50,
};

int cursor_x = 200;
int cursor_y = 500;
epd_clear_area(area);
writeln((GFXfont *)&FiraSans, (char *)voltage.c_str(), &cursor_x, &cursor_y, NULL);

/**
* There are two ways to close
* It will turn off the power of the ink screen,
* but cannot turn off the blue LED light.
*/
// epd_poweroff();

/**
* It will turn off the power of the entire
* POWER_EN control and also turn off the blue LED light
*/
epd_poweroff_all();

delay(5000);
}

Я попробовал выполнить те же действия на другом компьютере, и все сработало правильно. Проблема заключается только в компиляции, которая, как ни странно, не работает на моем основном компьютере.
Кто-нибудь может мне помочь в этом случае, спасибо всем

Подробнее здесь: https://stackoverflow.com/questions/783 ... a-long-int
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»