Запуск новых строк с Arduino TFT

Я экспериментирую с записью на 1,8-дюймовом TFT-дисплее. Я пытаюсь заставить MCU писать в каждой строке и запускать новую строку после достижения указанного «дна» экрана, но он записывает в следующую строку вместо следующая строка, аналогичная приведенной ниже.

BlahBlahBlahBlah
Blah
Blah
Blah
Blah
Blah

В то время как я ищу

BlahBlahBlahBlah
BlahBlahBlahBlah
BlahBlahBlahBlah
BlahBlahBlahBlah
BlahBlahBlahBlah

Насколько я могу судить, оператор if не сбрасывается, поэтому программа записывает и устанавливает курсор обратно в начало следующей строки.

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

int lineNumber = 1;
int rowNumber = 1;

void setup(void) 
{

  tft.initR(INITR_BLACKTAB);
  tft.fillScreen(ST77XX_BLACK);

  while (rowNumber <= 5)
  {
    if (lineNumber > 15)
    {
      tft.setCursor(25*rowNumber, 0);
      rowNumber++;
      lineNumber = 1;
    }

    tft.println("Blah");
    lineNumber++;


  }
}

person hendrixb    schedule 24.09.2019    source источник


Ответы (1)


Я нашел обходной путь. Вместо того, чтобы использовать функцию println (), я использовал функцию print () и явно установил курсор туда, где я хотел. Показано ниже.

 for (int rowNumber = 0; rowNumber <= 4; rowNumber++)
   {
 tft.setCursor(25*rowNumber,0);

for (int lineNumber = 0; lineNumber <= 15; lineNumber++)
     {
  tft.setCursor(25*rowNumber, 7*lineNumber);
  tft.print("blah");

  Serial.println(lineNumber);
     }
   }
person hendrixb    schedule 24.09.2019