K210ベアメタル開発入門(7)LCDディスプレイの1.14TFT画面

開発ボード:K210 AIRVR3バージョンwidora

開発環境:kendryteIDE公式

必要なリファレンスドキュメント:スタンドアロンSDKプログラミングガイドv0.5.0、およびWidora回路図

(1)新しいフォルダを作成します07my_code_114tft

Earth + Gift tft画面またはOLED画面が見つかりません。この画面を試して、駆動できるかどうかを確認してください

インストールの依存関係

クリーン+ビルド

環境に対応

(2)コードの変更

1.14TFT表示原理図

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と呼ばれるIOポートが値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 BCSDNにはアップロード添付機能がありません

リンク: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