Приветствую! возникает ошибка компиляции при весьма странных обстоятельствах. Если комментирую или удаляю вывод в сериал, код не компилится. Сталкивался ли кто с подобной мистикой? Код (C++): #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_MOSI 8 #define OLED_CLK 9 #define OLED_DC 11 #define OLED_CS 10 #define OLED_RESET 2 Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS); String price; String Display_text = "loading"; void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // инициализация дисплея по интерфейсу I2C, адрес 0x3C Serial.begin(115200); } /*------------------------------------------------*/ void loop() { display.clearDisplay(); // очистка дисплея display.setTextColor(WHITE); // установка цвета текста display.setTextSize(1); // задаем шрифт display.setCursor(0, 0); // установка курсора в позицию X = 0; Y = 0 display.print ("BTC/USDT - BTC/USD - "); // записываем в буфер памяти дисплея нашу фразу display.display(); // и её выводим на экран if(Serial.available()){ String phrase=""; String Var=""; while (!Serial.available()) delay(20); delay(400); while (Serial.available()) Var = Var + (char)(Serial.read()); price = Var.substring(Var.indexOf("{")+1,Var.indexOf("}")); int SZ = price.length(); Serial.print("size: "); Serial.println(SZ); if(SZ == 4){ char Format_price[5] = {price[0], ',' ,price[1], price[2], price[3]}; phrase = String(phrase + Format_price+"$"); } else if(SZ == 5){ char Format_price[7] = {price[0], price[1], ',', price[2], price[3], price[4], '$'}; phrase = String(phrase + Format_price); } Display_text = phrase; Serial.println(Display_text); } display.setTextSize(2); display.print (Display_text); display.display(); display.startscrollleft(0x00, 0x0F); delay(4250); //display.stopscroll(); } /*------------------------------------------------*/
exit status 1 @3a4em, включите подробный вывод при компиляции/загрузке, это можно сделать в настройках IDE
C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino\HardwareSerial.cpp: In member function 'availableForWrite': C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino\HardwareSerial.cpp:203:1: internal compiler error: Segmentation fault } ^ Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. lto-wrapper.exe: fatal error: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr/bin/avr-gcc returned 1 exit status compilation terminated. c:/program files/windowsapps/arduinollc.arduinoide_1.8.21.0_x86__mdqgnx93n4wtt/hardware/tools/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld.exe: error: lto-wrapper failed collect2.exe: error: ld returned 1 exit status Несколько библиотек найдено для "Wire.h" Используется: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\libraries\Wire Не используется: C:\Users\UserVBGT\Documents\Arduino\libraries\Wire Используем библиотеку SPI версии 1.0 из папки: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\libraries\SPI Используем библиотеку Wire версии 1.0 из папки: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\libraries\Wire Используем библиотеку Adafruit_GFX_Library версии 1.5.0 из папки: C:\Users\UserVBGT\Documents\Arduino\libraries\Adafruit_GFX_Library Используем библиотеку Adafruit_SSD1306-master версии 1.2.9 из папки: C:\Users\UserVBGT\Documents\Arduino\libraries\Adafruit_SSD1306-master exit status 1 Ошибка компиляции для платы Arduino Pro or Pro Mini.
Простое решение описано вот здесь - http://arduino.ru/forum/programmirovanie/oshibka-kompilyatora-pomogite#comment-273223 Должно заработать.
С этой переменной проблем нет. Спасибо, оставлю закладку на крайний случай. Что-то сломать, чтобы что-то починить - так себе перспектива на мой взгляд. По большому счету моя проблема не критична именно в этом случае, но смущает то, что так быть явно не должно и в другой раз будет тяжко найти проблемную строку, тк явной ошибки в коде нет(. В любом случае всем спасибо