0
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でLVGL

0
Posted at

概要

の続き。Hello worldの次は、ボードのボタンをトリガにして、表示切り替えをしてみる。

サンプル

samples/subsys/display/lvglをベースにして、
src/main.cを以下に変えた。

  • 黒背景にする
  • 使うFONTをCONFIG_LV_FONT_MONTSERRAT_20に変更
  • 起動後の時間と年月日の表示をボードのボタンでトグルする

overlayは前回と同じく
st7789v_waveshare_320x172.overlay
を使うので、ビルドは以下でできる

$ west build -p always -b nucleo_f401re lvgl_test  -- -DSHIELD=st7789v_waveshare_320x172
[530/530] Linking C executable zephyr/zephyr.elf
Memory region         Used Size  Region Size  %age Used
           FLASH:      323772 B       512 KB     61.75%
             RAM:       53824 B        96 KB     54.75%
           SRAM0:          0 GB        96 KB      0.00%
        IDT_LIST:          0 GB        32 KB      0.00%
Generating files from /media/data/work/zephyr_work/zephyrproject/zephyr/build/zephyr/zephyr.elf for board: nucleo_f401re

なので、FLASHとRAMの使用は半分強になる。これではbmpとかを表示するのは無理か。。

結果

image.png

Nucleoの本体の青ボタンを押すと以下になる。
image.png

成功。

気づき

prj.conf

prj.confでLVが使う資源を宣言するが、ちょっとでも間違うとビルドエラーや、真っ黒表示になる。
なので、まずはサンプルの実績のあるprj.confを使って、カスタマイズするほうが良い。
フォントサイズごとにせっていするのは面倒だけど。

displayデバイス

プログラム内で適切にdisplayデバイスをセットしないと、真っ黒表示になる
サンプルのプログラムでいうと、以下の行がないと表示されない。

#include <zephyr/drivers/display.h>

const struct device *display_dev;
display_dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_display));
display_blanking_off(display_dev);

lv_timer_handlerのコール周期

10〜20ミリ間隔で呼ぶ必要あり。

0
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
0
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?