1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ZephyrでST7789の表示

1
Last updated at Posted at 2026-03-14

概要

Zephry RTOSで以下のLCDに表示を出す。

マイコンの状態確認用で使いたいので、SPIでのLCD表示に慣れるのが目的。

ボードは以下を使う。

準備:Cubeprogrammerのインストール

https://www.st.com/en/development-tools/stm32cubeprog.html
からSetupSTM32CubeProgrammer_linux_64.zipをダウンロードする。
STアカウント作成時は、STからのメールに届いたパスワードリセットのリンクではなく、STのサイトでパスワードを忘れたを選んでリセットすると良い。

ダウンロードできたら、zipを解凍して、

$ ./SetupSTM32CubeProgrammer-2.22.0.linux

でインストールする。

CubeprogrammerではなくSEGGER J-LINKを使いたかったけど、何でか--runnerでjlink指定するとエラーになるので、諦めてCubeprogrammerを入れた。

結線

LCD NUCLEO
VCC 3.3V (CN7)
GND GND (CN7)
DIN D11 (MOSI)
CLK D13 (SCK)
CS D10
DC D9
RST D8

image.png

BLは繋がなくても、VCCでバックライトは光った。
NUCLER側のピンヘッダはすべて内側を使うこと。内側がArduino Header(内側のメス)とつながっている。
CN10の一番上はArduino Headerではないので、数えるときは要注意。
下から数えると、ズレない。

ビルドとフラッシュ

PCとNucleoボードをつないで、/dev/ttyACM0が見えることを確認。

$ minicom -D /dev/ttyACM0

でシリアルをつないでおく。

venvに入ってから、

$ west build -p always -b nucleo_f401re samples/drivers/display  -- -DSHIELD=st7789v_tl019fqv01
$ west flash

Application is running, Please Hold on...
Start operation achieved successfully

SHIELDの指定は、
https://bridle.tiac-systems.net/doc/2.7.1/zephyr/boards/shields/st7789v_generic/doc/index.html?utm_source=chatgpt.com
を参考にした。

動作確認

image.png

解像度がズレているっぽいので、overlayを書いて直してみる

シリアルには以下が出る

*** Booting Zephyr OS build v4.3.0-rc3-5-gf955d541a434 ***                      
[00:00:00.188,000] <inf> sample: Display sample for st7789v@0                   
[00:00:00.982,000] <inf> sample: Display starts    

とりあえず表示されて安心。

LVGLを試す。

まずはLVGLのサンプルプログラムを素直に書いてみる

$ cd zephyrproject/zephyr
$ west build -p always -b nucleo_f401re samples/subsys/display/lvgl  -- -DSHIELD=st7789v_tl019fqv01
$ west flash

そうすると、表示が崩れる。
image.png

overlayのシビアな設定が影響していそう。
そもそもこの1.47インチのディスプレイが特殊っぽいので、SHIELDのoverlayを作ってみる。

$ cd boards/shields/st7789v_generic/
$ cp st7789v_tl019fqv01.overlay st7789v_waveshare_320x172.overlay

以下の通り修正する
$ diff st7789v_tl019fqv01.overlay st7789v_waveshare_320x172.overlay
27,30c27,30
< 			width = <320>;
< 			height = <170>;
< 			x-offset = <0>;
< 			y-offset = <35>;
---
> 			width = <172>;
> 			height = <320>;
> 			x-offset = <34>;
> 			y-offset = <0>;
35c35
< 			mdac = <0x60>;
---
> 			mdac = <0x00>;

$ west build -p always -b nucleo_f401re samples/subsys/display/lvgl  -- -DSHIELD=st7789v_waveshare_320x172
$ west flash

image.png

こんな感じで、無事表示された。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?