Введение в разработку K210-bare metal (7) 1,14 TFT-экран ЖК-дисплея

Плата разработки: K210 AIRV R3 версия widora

Среда разработки: kendryte IDE official

Необходимые справочные документы: Standalone SDK Programming Guide v0.5.0 и схема Widora

(1) Создайте новую папку 07my_code_114tft

Earth + Gift Нет tft-экрана или OLED-экрана, попробуйте этот экран, чтобы проверить, можно ли им управлять

Зависимости установки

Чистота + сборка

Готовность к окружающей среде

(2) Модификация кода

1.14 Принципиальная схема дисплея TFT

RESETN связан с кнопкой сброса, не волнуйтесь

LCD_DC -> IO38

SPI0_D0 -> SPI0_D0

LCD_WR -> IO39

LCD_CS2-> IO37

Если используется SPI0_D0 -> SPI0_D0, то сначала поменяйте его на 0 (это неправильно, а ошибка обнаружилась позже. Долго искал проблему)

Посмотрите на lcd_init ();

Посмотрите, какая тыква находится в tft_hard_init ()

init_dcx ()

Обратите внимание, что порт ввода-вывода DCX настроен на значение 2.

Посмотрите, есть ли конфигурация

LCD_DC -> IO38

Посмотри какие

RESETN связан с кнопкой сброса, не волнуйтесь

LCD_DC -> IO38

SPI0_D0 -> SPI0_D0

LCD_WR -> IO39

LCD_CS2-> IO37

LCD_WR соответствует SCL, LCD_CS2 соответствует CS

Выберите SPI0, сохраните

Сначала скомпилируйте и загрузите, чтобы увидеть, отображается ли

Нет шерсти, продолжай менять

SYSCTL_POWER_BANK1 改为 SYSCTL_POWER_BANK6

Попробуйте снова записать

Тем не менее шерсть не ответила, продолжайте менять

Переход с 8 проводов на стандартные 3 провода

Другие вещи следует изменить 

Качаю и записываю, ответа все равно нет

 

(6) Продолжайте искать проблемы

Это изменено на 1, что раньше было неправильным, 0 - отключено, 1 - включено, необходимо запустить spi0

Горение наконец показывает, что это действительно сложно

 

PS 

Изменив это, отрегулируйте направление холста

 

Я настроил его здесь обычно, вы можете напрямую обратиться к моему коду и научиться изменять

Открывается камера, и камера тоже экспонируется.

1.14 ЖК-экран закончил обучение, увидимся в следующий раз

Dog B CSDN не имеет функции загрузки вложения

Ссылка: https://pan.baidu.com/s/1jyM48Jd1bFQWudVBybI97w 
Код извлечения: nynu

 

код main.c

#include <fpioa.h>
#include <lcd.h>
#include <sleep.h>
#include <stdio.h>
#include <sysctl.h>

#include "icon_generate.h"

uint32_t g_lcd_gram[LCD_X_MAX * LCD_Y_MAX / 2] __attribute__((aligned(128)));

static void io_set_power(void) {
  sysctl_set_power_mode(SYSCTL_POWER_BANK6, SYSCTL_POWER_V18);
}

static void io_mux_init(void) { sysctl_set_spi0_dvp_data(1); }

int main(void) {
  printf("lcd test\n");

  io_mux_init();
  io_set_power();

  lcd_init();
  lcd_clear(RED);
  msleep(500);
  lcd_clear(GREEN);
  msleep(500);
  lcd_clear(BLUE);
  msleep(500);
  lcd_clear(WHITE);

  lcd_set_direction(DIR_XY_RLUD);
  lcd_draw_picture(0, 0, 240, 160, g_lcd_gram);
  lcd_draw_string(120, 40, "Canaan", CYAN);
  lcd_draw_picture((240 - IMAGE_HEIGHT) / 2, (320 - IMAGE_WIDTH) / 2,
                   IMAGE_HEIGHT, IMAGE_WIDTH, rgb_image);

  lcd_set_direction(DIR_XY_RLUD);
  lcd_draw_string(60, 240, "Kendryte K210", ORANGE);
  lcd_draw_string(100, 100, "A", ORANGE);
  lcd_draw_string(100, 90, "B", ORANGE);
  lcd_draw_string(90, 100, "C", ORANGE);
  lcd_draw_string(90, 90, "D", ORANGE);

  while (1)
    ;
}

 

рекомендация

отblog.csdn.net/jwdeng1995/article/details/108036166