開発ボード: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)
;
}