Всем доброго времени суток
Подключаю дисплей с драйвером ST7735 к stm32. После инициализации с Adafruit дисплей не реагировал ни на что, у него оставалась ток подсветка, поэтому упростила ее до вида:
RST_0(); delay(10); RST_1(); delay(10); CS_1(); delay(5); CS_0(); delay(1); ST7789_WriteCommand(ST7735_SWRESET); delay(125); ST7789_WriteCommand (ST7735_SLPOUT); delay(125); ST7789_WriteCommand(ST7735_COLMOD); ST7789_WriteSmallData(0x55); ST7789_WriteCommand(ST7735_ MADCTL); ST7789_WriteSmallData(0x00); ST7789_WriteCommand(0x21); ST7789_WriteCommand (ST7789_DISPON); delay(10); CS_1();
После такой инициализации на экранчике появляются шумы и я могу включать и выключать экран, что наводит на мысли, что spi настроен правильно(настраивала строго по даташиту(CPHA=1, CPOL=1). Где-то увидела, что нужно после аппаратного сброса дергать cheap select, иначе драйвер не реагирует. В общем, перепробовала всякое, но уперлась лбом в стенку.... Сейчас хочу просто залить экран цветом, но не могу это сделать. Вижу только шумы. Хотя устанавливаю адрес заливки, а потом и саму заливку по пикселям
uint16_t x_start = 0, x_end = SIZE_X; uint16_t y_start = 0, y_end = SIZE_Y; ST7789_WriteCommand(ST7789_CASET); uint8_t data[] = {x_start >> 8, x_start & 0xFF, x_end >> 8, x_end & 0xFF}; ST7789_WriteData(data, 4); ST7789_WriteCommand(ST7789_RASET); uint8_t data[] = {y_start >> 8, y_start & 0xFF, y_end >> 8, y_end & 0xFF}; ST7789_WriteData(data, 4); ST7789_WriteCommand(ST7789_RAMWR); for (uint16_t i = x_start; i < x_end; i++) for (uint16_t j = y_start; j < y_end; j++) { uint8_t data[] = {color >> 8, color & 0xFF}; ST7789_WriteData(data, sizeof(data)); }
В общем, уже не знаю, в какую сторону можно думать. Первый раз работаю с такими вот экранчиками. Вот этот пример смотрела здесь и еще с других источников. Не видела, чтобы сталкивались с такой проблемой. У меня возникает ощущение, что я упускаю какую-то маленькую и важную деталь.
Если шумы появились, значит дисплей на команды реагирует.
А где полная инициализация дисплея?
Просто так он не заработает. В статье, на которую ссылаетесь, это всё описано.
Если при полной инициализации дальше шума дело не идёт, может не хватать питания.