App:Library:LVGL:docs:Introduction
https://docs.lvgl.io/8.2/intro/index.html
英文 | 自動翻訳 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
IntroductionLVGL (Light and Versatile Graphics Library) is a free and open-source graphics library providing everything you need to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and a low memory footprint. |
序章LVGL(Light and Versatile Graphics Library)は、無料のオープンソースグラフィックライブラリであり、使いやすいグラフィック要素、美しい視覚効果、および低メモリフットプリントを備えた埋め込みGUIを作成するために必要なすべてを提供します。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Key features
|
主な機能
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RequirementsBasically, every modern controller which is able to drive a display is suitable to run LVGL. The minimal requirements are:
Note that memory usage may vary depending on architecture, compiler and build options. |
要件基本的に、ディスプレイを駆動できる最新のコントローラーはすべて、LVGLの実行に適しています。最小要件は次のとおりです。
メモリ使用量は、アーキテクチャ、コンパイラ、およびビルドオプションによって異なる場合があることに注意してください。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LicenseThe LVGL project (including all repositories) is licensed under MIT license. This means you can use it even in commercial projects. It's not mandatory, but we highly appreciate it if you write a few words about your project in the My projects category of the forum or a private message to lvgl.io. Although you can get LVGL for free there is a massive amount of work behind it. It's created by a group of volunteers who made it available for you in their free time. To make the LVGL project sustainable, please consider contributing to the project. You can choose from many different ways of contributing such as simply writing a tweet about you using LVGL, fixing bugs, translating the documentation, or even becoming a maintainer. |
ライセンスLVGLプロジェクト(すべてのリポジトリを含む)は、MITライセンスの下でライセンスされています。これは、商業プロジェクトでも使用できることを意味します。 必須ではありませんが、フォーラムの My Project カテゴリにプロジェクトについていくつかの単語を書き込んだり、lvgl.ioへのプライベートメッセージを書き込んだりしていただければ幸いです。 LVGLは無料で入手できますが、その背後には膨大な量の作業があります。それは彼らの自由な時間にあなたのためにそれを利用可能にしたボランティアのグループによって作成されました。 LVGLプロジェクトを持続可能にするために、プロジェクトへの貢献を検討してください。LVGLを使用して自分に関するツイートを書く、バグを修正する、ドキュメントを翻訳する、さらにはメンテナになるなど、さまざまな貢献方法から選択できます。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Repository layoutAll repositories of the LVGL project are hosted on GitHub: https://github.com/lvgl You will find these repositories there:
|
リポジトリレイアウトLVGLプロジェクトのすべてのリポジトリは、GitHubでホストされています:https://github.com/lvgl これらのリポジトリはそこにあります:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Release policyThe core repositories follow the rules of Semantic versioning:
Tags like Release cycle
BranchesThe core repositories have at least the following branches:
ChangelogThe changes are recorded in CHANGELOG.md. Version supportBefore v8 every minor release of major releases is supported for 1 year. Starting from v8, every minor release is supported for 1 year.
|
リリースポリシーコアリポジトリは、セマンティックバージョニングのルールに従います。
のようなタグ リリースサイクル
ブランチコアリポジトリには、少なくとも次のブランチがあります。
変更ログ変更履歴はCHANGELOG.mdに記録されています。 バージョンサポートv8より前では、メジャーリリースのすべてのマイナーリリースが1年間サポートされています。v8以降、すべてのマイナーリリースが1年間サポートされます。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FAQWhere can I ask questions?You can ask questions in the forum: https://forum.lvgl.io/. We use GitHub issues for development related discussion. You should use them only if your question or issue is tightly related to the development of the library. Before posting a question, please ready this FAQ section as you might find answer to your issue here too. Is my MCU/hardware supported?Every MCU which is capable of driving a display via parallel port, SPI, RGB interface or anything else and fulfills the Requirements is supported by LVGL. This includes:
Is my display supported?LVGL needs just one simple driver function to copy an array of pixels into a given area of the display. If you can do this with your display then you can use it with LVGL. Some examples of the supported display types:
See the Porting section to learn more. LVGL doesn't start, randomly crashes or nothing is drawn on the display. What can be the problem?
My display driver is not called. What have I missed?Be sure you are calling Learn more in the Tick and Task handler sections. Why is the display driver called only once? Only the upper part of the display is refreshed.Be sure you are calling Why do I see only garbage on the screen?Probably there a bug in your display driver. Try the following code without using LVGL. You should see a square with red-blue gradient. #define BUF_W 20 #define BUF_H 10 lv_color_t buf[BUF_W * BUF_H]; lv_color_t * buf_p = buf; uint16_t x, y; for(y = 0; y < BUF_H; y++) { lv_color_t c = lv_color_mix(LV_COLOR_BLUE, LV_COLOR_RED, (y * 255) / BUF_H); for(x = 0; x < BUF_W; x++){ (*buf_p) = c; buf_p++; } } lv_area_t a; a.x1 = 10; a.y1 = 40; a.x2 = a.x1 + BUF_W - 1; a.y2 = a.y1 + BUF_H - 1; my_flush_cb(NULL, &a, buf); Why do I see nonsense colors on the screen?Probably LVGL's color format is not compatible with your display's color format. Check If you are using 16-bit colors with SPI (or another byte-oriented interface) you probably need to set How to speed up my UI?
How to reduce flash/ROM usage?You can disable all the unused features (such as animations, file system, GPU etc.) and object types in lv_conf.h. If you are using GCC you can add How to reduce the RAM usage
How to work with an operating system?To work with an operating system where tasks can interrupt each other (preemptively) you should protect LVGL related function calls with a mutex. See the Operating system and interrupts section to learn more. |
よくある質問どこで質問できますか?フォーラムで質問することができます:https://forum.lvgl.io/ 。 開発関連のディスカッションにはGitHubの問題を使用します。質問や問題がライブラリの開発に密接に関連している場合にのみ、これらを使用する必要があります。 質問を投稿する前に、このFAQセクションを準備してください。ここでも、問題に対する回答が見つかる可能性があります。 私のMCU/ハードウェアはサポートされていますか?パラレルポート、SPI、RGBインターフェイスなどを介してディスプレイを駆動でき、要件を満たすすべてのMCUは、LVGLでサポートされています。 これも:
私のディスプレイはサポートされていますか?LVGLは、ピクセルの配列をディスプレイの特定の領域にコピーするために1つの単純なドライバー関数を必要とします。ディスプレイでこれを行うことができる場合は、LVGLで使用できます。 サポートされている表示タイプの例:
詳細については、「移植」セクションを参照してください。 LVGLが起動しない、ランダムにクラッシュする、またはディスプレイに何も表示されない。何が問題になる可能性がありますか?
ディスプレイドライバが呼び出されません。私は何を逃しましたか?
詳細については、ティックとタスクハンドラーのセクションをご覧ください。 ディスプレイドライバが1回だけ呼び出されるのはなぜですか?表示上部のみが更新されます。「 displayflushcallback 画面にゴミだけが表示されるのはなぜですか?おそらく、ディスプレイドライバにバグがあります。LVGLを使用せずに次のコードを試してください。赤青のグラデーションの正方形が表示されます。 #define BUF_W 20 #define BUF_H 10 lv_color_t buf[BUF_W * BUF_H]; lv_color_t * buf_p = buf; uint16_t x, y; for(y = 0; y < BUF_H; y++) { lv_color_t c = lv_color_mix(LV_COLOR_BLUE, LV_COLOR_RED, (y * 255) / BUF_H); for(x = 0; x < BUF_W; x++){ (*buf_p) = c; buf_p++; } } lv_area_t a; a.x1 = 10; a.y1 = 40; a.x2 = a.x1 + BUF_W - 1; a.y2 = a.y1 + BUF_H - 1; my_flush_cb(NULL, &a, buf); 画面に意味のない色が表示されるのはなぜですか?おそらく、LVGLのカラーフォーマットはディスプレイのカラーフォーマットと互換性がありません。lv_conf.hをチェック SPI(または別のバイト指向インターフェイス)で16ビットカラーを使用している場合は、おそらくlv_conf.hで設定する必要があります。ピクセルの上位バイトと下位バイトを交換します。 UIを高速化する方法は?
フラッシュ/ROMの使用量を減らす方法は?lv_conf.hで、未使用の機能(アニメーション、ファイルシステム、GPUなど)とオブジェクトタイプをすべて無効にすることができます。 GCCを使用している場合は、コンパイラフラグとリンカフラグを追加して、未使用の関数と変数を最終的なバイナリから削除できます。 RAM使用量を減らす方法
オペレーティングシステムを操作する方法は?タスクが(プリエンプティブに)相互に割り込むことができるオペレーティングシステムで作業するには、ミューテックスを使用してLVGL関連の関数呼び出しを保護する必要があります。詳細については、オペレーティングシステムと割り込みのセクションを参照してください。 |