Плата разработки: 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)
;
}