Placa de desarrollo: K210 AIRV R3 versión widora
Entorno de desarrollo: kendryte IDE official
Documentos de referencia necesarios: Guía de programación del SDK independiente v0.5.0 y esquema de Widora
(1) Cree una nueva carpeta 07my_code_114tft
Earth + Gift No se encuentra ninguna pantalla tft o OLED, pruebe esta pantalla para ver si se puede manejar
Dependencias de instalación
Limpiar + construir
Listo para el medio ambiente
(2) Modificación de código
1.14 Diagrama del principio de la pantalla TFT
RESETN está conectado al botón de reinicio, no te preocupes
LCD_DC -> IO38
SPI0_D0 -> SPI0_D0
LCD_WR -> IO39
LCD_CS2-> IO37
Si se usa SPI0_D0 -> SPI0_D0, cámbielo primero a 0 (esto es incorrecto y el error se descubrió más tarde. Busqué el problema durante mucho tiempo)
Mira lcd_init ();
Mira qué calabaza hay en tft_hard_init ()
init_dcx ()
Ver que el puerto IO llamado DCX esté configurado con un valor de 2
Ver si hay alguna configuración
LCD_DC -> IO38
Mira cuales
RESETN está conectado al botón de reinicio, no te preocupes
LCD_DC -> IO38
SPI0_D0 -> SPI0_D0
LCD_WR -> IO39
LCD_CS2-> IO37
LCD_WR corresponde a SCL, LCD_CS2 corresponde a CS
Seleccionar en SPI0, guardar
Primero compile y descargue para ver si se muestra
Sin lana, sigue cambiando
SYSCTL_POWER_BANK1 改为 SYSCTL_POWER_BANK6
Intenta quemar de nuevo
Aún así la lana no respondió, sigue cambiando
Cambiar de 8 cables a 3 cables estándar
Otras cosas deberían cambiarse
Descargando y grabando, todavía no hay respuesta
(6) Sigue buscando problemas
Esto se cambia a 1, lo cual es incorrecto antes, 0 está deshabilitado, 1 es habilitado, es necesario iniciar spi0
Quemar finalmente demuestra que es realmente difícil
PD
Modificando esto, ajusta la dirección del lienzo
Lo ajusté normalmente aquí, puedes consultar directamente mi código y aprender a modificar
La cámara está expuesta y la cámara también está expuesta.
1.14 La pantalla LCD terminó de aprender, nos vemos la próxima vez
Dog B CSDN no tiene función de archivo adjunto de carga
Enlace: https://pan.baidu.com/s/1jyM48Jd1bFQWudVBybI97w
Código de extracción: nynu
código 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)
;
}