
![]()
មគ្គុទ្ទេសក៍អ្នកប្រើប្រាស់ HT32 GUI-Builder
ការកែប្រែ៖ V1.00 កាលបរិច្ឆេទ៖ ថ្ងៃទី 13 ខែមិថុនា ឆ្នាំ 2025
![]()
1. លើសview
HT32 GUI-Builder គឺជាអ្នកបង្កើតចំណុចប្រទាក់ក្រាហ្វិកដែលត្រូវបានរចនាឡើងសម្រាប់ microcontrollers 32-bit របស់ Holtek ដើម្បីជួយអ្នកអភិវឌ្ឍន៍ក្នុងការរចនា និងប្រើប្រាស់កម្មវិធីចំណុចប្រទាក់មនុស្ស-ម៉ាស៊ីនយ៉ាងរហ័ស។ ជាមួយនឹងប្រតិបត្តិការអូសទាញដោយវិចារណញាណ អ្នកប្រើប្រាស់អាចកំណត់រចនាសម្ព័ន្ធធាតុដែលមើលឃើញបានយ៉ាងងាយស្រួលដូចជា ប៊ូតុង ស្លាកអត្ថបទ រូបតំណាងជាដើម និងបញ្ចប់ការរចនា GUI ស្មុគស្មាញដោយមិនចាំបាច់សរសេរកូដចំណុចប្រទាក់ច្រើន។
កម្មវិធីនេះគាំទ្រស៊េរី microcontroller 32-bit របស់ Holtek និងរួមបញ្ចូលគ្នាយ៉ាងល្អឥតខ្ចោះជាមួយ LVGL (Light and Versatile Graphics Library) ដើម្បីផ្តល់នូវក្រាហ្វិកដ៏សំបូរបែប និងម៉ាស៊ីនបង្ហាញប្រកបដោយប្រសិទ្ធភាព។ HT32 GUI-Builder អាចបង្កើតគម្រោងដោយស្វ័យប្រវត្តិ files ដែលអនុលោមតាមក្របខ័ណ្ឌ LVGL ។ អ្នកប្រើប្រាស់អាចនាំចូលគម្រោងដែលបានបង្កើតទៅក្នុងបរិយាកាសអភិវឌ្ឍន៍ បន្ទាប់មកចងក្រង ទាញយក និងដំណើរការគម្រោង ដោយកាត់បន្ថយពេលវេលាអភិវឌ្ឍន៍យ៉ាងសំខាន់។
2. តម្រូវការប្រព័ន្ធ
- microcontroller HT32៖ អង្គចងចាំ Flash 256K និងខ្ពស់ជាងនេះ / SRAM 32K និងខ្ពស់ជាងនេះ។
- ប្រព័ន្ធប្រតិបត្តិការ៖ ប្រព័ន្ធប្រតិបត្តិការ Windows 64 ប៊ីត
- បរិស្ថានអភិវឌ្ឍន៍៖ Keil Vision / HT32-IDE
3. ការគាំទ្រផ្នែករឹង
HT32 GUI-Builder គាំទ្រ Holtek MCUs ខាងក្រោម៖
- HT32F52367: 256K Flash / 32K RAM
- HT32F12365: 256K Flash / 64K RAM
- HT32F12366: 256K Flash / 128K RAM
- HT32F42386: 512K Flash / 196K RAM
- HT32F49395: 1024K Flash / 224K RAM
អេក្រង់ LCD ដែលគាំទ្រ៖
- ESK32-A2A31: 2.8 អ៊ីញ (320 × 240) TFT-LCD
- ESK32-A4A31: 5 អ៊ីញ (800 × 480) TFT-LCD
- ESK32-A4A32: 4.3 អ៊ីញ (480 × 272) TFT-LCD
4. ការណែនាំអំពីការដំឡើង
- ដំឡើងនៅលើប្រព័ន្ធប្រតិបត្តិការ Microsoft WIN7/WIN8/WIN10/WIN11 ។
- ប្រព័ន្ធត្រូវដំឡើង .NET Framework 3.5 ។ ប្រសិនបើវាមិនត្រូវបានដំឡើងទេ សូមទាញយក និងដំឡើងវាពីផ្លូវការរបស់ Microsoft webគេហទំព័រ៖ https://www.microsoft.com/zh-tw/download/details.aspx?id=21
- ក្នុងអំឡុងពេលដំណើរការដំឡើង សូមធ្វើតាមការណែនាំ ហើយបន្តចុច "បន្ទាប់" ដើម្បីបញ្ចប់ការដំឡើង។
5. សង្ខេបមុខងារ
HT32 GUI-Builder រួមបញ្ចូលមុខងារសំខាន់ៗដូចខាងក្រោមៈ
- ធាតុក្រាហ្វិកអូសនិងទម្លាក់៖ វាគាំទ្រជួរដ៏ធំទូលាយនៃធាតុក្រាហ្វិកអូសនិងទម្លាក់ ដែលធ្វើឱ្យវាងាយស្រួលសម្រាប់អ្នកប្រើប្រាស់ក្នុងការរចនាចំណុចប្រទាក់យ៉ាងឆាប់រហ័ស។
- ការគាំទ្រពហុអេក្រង់៖ វាគាំទ្រដើម្បីប្តូររវាងអេក្រង់ច្រើន។
- ការគ្រប់គ្រងរូបភាព និងពុម្ពអក្សរ៖ រូបភាពអាចត្រូវបានរក្សាទុកក្នុងអង្គចងចាំ Flash ខាងក្នុង ឬកាត SD ។
ពុម្ពអក្សរអាចត្រូវបានប្ដូរតាមបំណងតាមរយៈកម្មវិធីបម្លែងពុម្ពអក្សរ។ - ក្លែងធ្វើ view៖ អ្នកប្រើប្រាស់អាចជាមុនview បែបផែនរចនា UI ក្នុងពេលវេលាជាក់ស្តែងតាមរយៈម៉ាស៊ីនក្លែងធ្វើ។

- ម៉ឺនុយពាក្យបញ្ជា
- ធាតុក្រាហ្វិកទូទៅ
- គុណលក្ខណៈពិសេសរបស់ធាតុក្រាហ្វិក
- រចនាប័ទ្មធាតុក្រាហ្វិក
- ព្រឹត្តិការណ៍ធាតុក្រាហ្វិក
- ការបង្ហាញព័ត៌មាន និងតំបន់ធនធាន
- ធាតុក្រាហ្វិកដែលមាន
- ធាតុក្រាហ្វិកដែលបានប្រើ
- អេក្រង់
ការចាប់ផ្តើមរហ័ស
(1) បើក HT32 GUI-Builder ដើម្បីបញ្ចូលចំណុចប្រទាក់មេ។
(2) ចុច [ថ្មី] បន្ទាប់មកជ្រើសរើសផ្នែកក្រុមប្រឹក្សាអភិវឌ្ឍន៍ លេខ/អេក្រង់ និងប៉ារ៉ាម៉ែត្រផ្សេងទៀតនៅក្នុងបង្អួចការកំណត់លេចឡើងដើម្បីបង្កើតគម្រោង។
(3) ជ្រើសរើសធាតុក្រាហ្វិកដែលចង់បាន (ឧទាហរណ៍ ប៊ូតុង ស្លាក របារវឌ្ឍនភាព។ល។) ពីរបារឧបករណ៍ខាងឆ្វេង ហើយអូសពួកវាទៅផ្ទៃផ្ទាំងក្រណាត់។
(4) បន្ថែមធនធានរូបភាព/ពុម្ពអក្សរ។
(5) ជ្រើសរើសធាតុក្រាហ្វិកណាមួយនៅលើផ្ទាំងក្រណាត់ ហើយកែតម្រូវលក្ខណៈរបស់វា ដូចជាទីតាំង ទំហំ ពណ៌ លំនាំ ពុម្ពអក្សរ។ល។ នៅលើបន្ទះគុណលក្ខណៈនៅជ្រុងខាងស្តាំនៃចំណុចប្រទាក់កម្មវិធី។
(6) ចុច [លេង] ទៅ view ការរចនានៅក្នុងបង្អួចក្លែងធ្វើ និងធ្វើអន្តរកម្មជាមួយអេក្រង់ជាមួយក្តារចុច និងកណ្ដុរ។
(7) ចុច [Code] ដើម្បីបង្កើតកម្មវិធីពេញលេញ ប្រើវាជាមួយ Holtek Firmware Library ចងក្រងកម្មវិធីក្នុងបរិយាកាសអភិវឌ្ឍន៍ ហើយទាញយកវាទៅក្រុមប្រឹក្សាអភិវឌ្ឍន៍ដើម្បីសាកល្បង។
(8) ប្រសិនបើអេក្រង់ត្រូវបានផ្លាស់ប្តូរដោយផ្នែក វាគាំទ្រក្នុងការបង្កើតកូដ UI តែប៉ុណ្ណោះ ដើម្បីជៀសវាងការសរសេរជាន់លើកូដដែលអ្នកប្រើប្រាស់បានសរសេររួចហើយ។
7. ការណែនាំអំពីមុខងារលម្អិត
| មុខងារ | ការពិពណ៌នា |
[ថ្មី] |
បង្កើតការកំណត់រចនាសម្ព័ន្ធអេក្រង់ថ្មី។ |
[ថ្មីៗ] |
បានបើកថ្មីៗនេះ files. |
[បើក]
បើកគម្រោងកំណត់រចនាសម្ព័ន្ធអេក្រង់ (.hgb)។ ធនធាន files [គម្រោង].ទ្រព្យសកម្ម និង [គម្រោង]។ ពុម្ពអក្សរត្រូវតែនៅក្នុងថតដូចគ្នា។ |
![]() |
[នាំចូល]
HT32 GUI-Builder បានរួមបញ្ចូល samples នៃដំណើរការព្រឹត្តិការណ៍ដែលបានបញ្ចប់។ គម្រោងដែលបានបង្កើតតាមរយៈមុខងារនាំចូលអាចបង្កើតដំណើរការព្រឹត្តិការណ៍ files synchronously នៅពេលបង្កើតកូដ ដូច្នេះការបញ្ចប់ការអភិវឌ្ឍន៍មុខងារយ៉ាងរហ័ស។ |
![]() |
[រក្សាទុក]
រក្សាទុកគម្រោងកំណត់រចនាសម្ព័ន្ធអេក្រង់ (.hgb)។ រូបភាពនិងពុម្ពអក្សរ files នៅក្នុងតំបន់ធនធាននឹងត្រូវបានរក្សាទុកទៅក្នុង [គម្រោង]។ ទ្រព្យសកម្ម និង [គម្រោង]។ ថតពុម្ពអក្សរក្នុងពេលតែមួយ។ |
![]() |
[+Scrn]
បង្កើតអេក្រង់ថ្មី។ កម្មវិធីចម្បងនឹងផ្ទុកអេក្រង់ដំបូង ហើយអ្នកប្រើប្រាស់ត្រូវប្តូរទៅអេក្រង់ផ្សេងទៀតនៅក្នុងកូដដោយខ្លួនឯង។ |
![]() |
[-Scrn] |
លុបអេក្រង់ដែលបានជ្រើសរើស។ |
[ចម្លង] |
ចម្លងធាតុក្រាហ្វិកដែលបានជ្រើសរើស។ |
[បិទភ្ជាប់] |
បិទភ្ជាប់ធាតុក្រាហ្វិកដែលបានចម្លង។ |
[កាត់] |
កាត់ធាតុក្រាហ្វិកដែលបានជ្រើសរើស។ |
[លុប] |
លុបធាតុក្រាហ្វិកដែលបានជ្រើសរើស។ |
[ពុម្ពអក្សរ]
កម្មវិធីបំលែងពុម្ពអក្សរ LVGL ។ សូមមើលជំពូក "កម្មវិធីបំលែងពុម្ពអក្សរ" ។ |
![]() |
[កូដ]
បង្កើតគម្រោង Keil ។ ថតដែលបានបង្កើតគួរតែត្រូវបានចម្លងទៅ {Holtek Standard Peripheral Firmware Library}\application\{any folder} បន្ទាប់មកប្រតិបត្តិ _CreateProject.bat នៅក្រោមថតនេះ។ |
![]() |
[កូដ UI]
បង្កើតកូដដែលទាក់ទងនឹងអេក្រង់ឡើងវិញ។ |
ពាក់ព័ន្ធ files រួមមាន:
lvgl_ui.c កុំបន្ថែមកូដផ្ទាល់ខ្លួនរបស់អ្នកទៅទាំងនេះ files ដើម្បីជៀសវាងលេខកូដត្រូវបានសរសេរជាន់លើដោយ HT32 GUI-Builder ។ |
[លេង]ក្លែងធ្វើអេក្រង់ដែលបានជ្រើសរើសបច្ចុប្បន្ន។ បន្ទាប់ពីចូលទៅក្នុងអេក្រង់ក្លែងធ្វើ អ្នកអាចប្រើកណ្ដុរដើម្បីកេះព្រឹត្តិការណ៍នៃធាតុក្រាហ្វិក ឬអ្នកអាចប្រើក្ដារចុចដើម្បីបញ្ចូលមាតិកាដោយផ្ទាល់។ |
|
[ការកំណត់]
កំណត់ប៉ារ៉ាម៉ែត្រដែលទាក់ទងនឹងផ្នែករឹង។ សូមមើលជំពូក "ការកំណត់" សម្រាប់ព័ត៌មានលម្អិត។ |
![]() |
7.2 ចំណុចប្រទាក់កម្មវិធី
| មុខងារ | ការពិពណ៌នា |
| មូលដ្ឋាន/ឧបករណ៍បញ្ជា [ធាតុក្រាហ្វិក] អូស និងទម្លាក់ធាតុក្រាហ្វិកដែលចង់បានទៅអេក្រង់ LCD ។ |
![]() |
| ធាតុក្រាហ្វិកឪពុកម្តាយ/កូន [ក្រុម] និងការបញ្ជាទិញធាតុក្រាហ្វិក ការដាក់ជាក្រុមត្រូវបានធ្វើដោយអូសធាតុក្រាហ្វិកកូនទៅធាតុក្រាហ្វិកមេនៅក្នុងតំបន់ [ធាតុក្រាហ្វិកដែលបានប្រើ] ។ នៅពេលដែលធាតុក្រាហ្វិកមេផ្លាស់ទី ធាតុក្រាហ្វិកកូននឹងផ្លាស់ទីជាមួយវា។ បន្ថែមពីលើ [ក្រុម] អ្នកក៏អាចផ្លាស់ប្តូរលំដាប់នៃវត្ថុដោយអូសពួកវាផងដែរ។ |
![]() ![]() |
| [ទ្រព្យសកម្ម]/[ពុម្ពអក្សរ] តំបន់ ចុច [បន្ថែមរូបភាព Files] ដើម្បីបន្ថែមរូបភាពទៅតំបន់ [Assets] មុនពេលពួកវាអាចប្រើក្នុង widget។ ទម្រង់បំប្លែងលំនាំដើមសម្រាប់រូបភាពដែលបានបន្ថែមទៅផ្ទៃ [ទ្រព្យសកម្ម] គឺពណ៌ពិត 16 ប៊ីត។ អ្នកប្រើប្រាស់អាចចុចកណ្ដុរស្ដាំលើរូបភាពដើម្បីជ្រើសរើសទម្រង់ពណ៌ដែលបានធ្វើលិបិក្រម 1/2/4/8-bit ដើម្បីកាត់បន្ថយទំហំដែលត្រូវការសម្រាប់រូបភាព។ ទម្រង់ទាំងនេះអាចត្រូវបានជ្រើសរើសសម្រាប់តម្រូវការពណ៌ទាបដូចជារូបតំណាងជាដើម។ ពុម្ពអក្សរត្រូវបានបន្ថែមទៅផ្ទៃ [ពុម្ពអក្សរ] តាមរយៈកម្មវិធីបំប្លែងពុម្ពអក្សរ សូមមើលជំពូក "កម្មវិធីបំលែងពុម្ពអក្សរ" សម្រាប់ព័ត៌មានលម្អិតបន្ថែម។ |
![]() ![]() |
| ធាតុក្រាហ្វិក [គុណលក្ខណៈទូទៅ]/[គុណលក្ខណៈពិសេស] តំបន់ តំបន់នេះរួមបញ្ចូលទីតាំង/ទំហំធាតុក្រាហ្វិក ទង់ និងរដ្ឋ។ សម្រាប់ការពិពណ៌នាបន្ថែមអំពី [ទង់] និង [រដ្ឋ] សូមយោងទៅមន្ត្រី LVGL webគេហទំព័រ។ លើសពីនេះ ធាតុក្រាហ្វិកផ្សេងគ្នាមានគុណលក្ខណៈផ្ទាល់ខ្លួន តួលេខត្រឹមត្រូវបង្ហាញពីគុណលក្ខណៈនៃស្លាក។ សូមយោងផងដែរទៅឯកសារ LVGL សម្រាប់គុណលក្ខណៈលម្អិតនៃធាតុក្រាហ្វិកនីមួយៗ។ |
![]() |
| ធាតុក្រាហ្វិក [រចនាប័ទ្ម] តំបន់ រូបរាង និងពណ៌នៃធាតុក្រាហ្វិក។ល។ អាចត្រូវបានផ្លាស់ប្តូរដោយប្រើការកំណត់រចនាប័ទ្ម។ ប្រអប់ពណ៌លឿងបង្ហាញការកំណត់រចនាប័ទ្មទូទៅសម្រាប់ធាតុក្រាហ្វិកទាំងអស់ ខណៈដែលធាតុផ្សេងទៀតគឺខុសគ្នាសម្រាប់ធាតុក្រាហ្វិកនីមួយៗ។ ធាតុក្រាហ្វិកមានផ្នែកជាច្រើន។ សម្រាប់អតីតample ជា Switch មាន Main, Indicator និង Knob ដែលនីមួយៗអាចកំណត់ដោយឯករាជ្យ។ ធាតុក្រាហ្វិកក៏អាចត្រូវបានកំណត់រចនាសម្ព័ន្ធដើម្បីឱ្យមានរចនាប័ទ្មផ្សេងគ្នាសម្រាប់រដ្ឋផ្សេងគ្នា។ សម្រាប់អតីតampដូច្នេះ ស្ថានភាពបិទ ឬចុចអាចមានការកំណត់រចនាប័ទ្មខុសៗគ្នា។ |
![]() |
| ធាតុក្រាហ្វិក [ព្រឹត្តិការណ៍] ផ្ទៃ បន្ទាប់ពីព្រឹត្តិការណ៍ដែលចង់បានត្រូវបានជ្រើសរើស មានតែក្របខ័ណ្ឌដើម្បីទទួលព្រឹត្តិការណ៍ប៉ុណ្ណោះដែលត្រូវបានបង្កើតនៅក្នុង lvgl_event.c ។ អ្នកប្រើអាចធ្វើកិច្ចការផ្សេងគ្នាបន្ទាប់ពីធាតុក្រាហ្វិកទទួលបានព្រឹត្តិការណ៍។ សម្រាប់ព័ត៌មានលម្អិត សូមមើល "Exampការពិពណ៌នា" ជំពូក។ |
![]() |
| [អេក្រង់] ពង្រីក/ពង្រីកតំបន់ ផ្លាស់ទីទស្សន៍ទ្រនិចកណ្ដុរទៅផ្ទៃអេក្រង់ LCD សង្កត់គ្រាប់ចុចបញ្ជា (Ctrl) ហើយរំកិលឡើងលើកង់ប៊ូតុងកណ្ដុរកណ្តាលដើម្បីពង្រីកអេក្រង់ រំកិលចុះក្រោមដើម្បីពង្រីកផ្ទៃអេក្រង់។ |
![]() |
8. កម្មវិធីបម្លែងពុម្ពអក្សរ
LVGL ប្រើការអ៊ិនកូដ UTF-8 ដើម្បីបង្ហាញតួអក្សរយូនីកូដសម្រាប់គ្រប់ភាសា។ អ្នកប្រើប្រាស់អាចបង្កើតអារេ C ឬកូដគោលពីរពីពុម្ពអក្សរ TTF ឬ WOFF តាមរយៈកម្មវិធីបំលែងពុម្ពអក្សរ។ អ្នកអាចជ្រើសរើសជួរតួអក្សរយូនីកូដ និងបញ្ជាក់ BPP (ប៊ីតក្នុងមួយភីកសែល) ដើម្បីបង្កើតពុម្ពអក្សរថ្មីសម្រាប់គម្រោង GUI របស់អ្នក។

រកមើលថតពុម្ពអក្សរ
ជ្រើសរើសថតដែលពុម្ពអក្សរ files កំណត់ទីតាំង។
ជ្រើសរើសធនធានពុម្ពអក្សរ
ជ្រើសរើសពុម្ពអក្សរដែលបានរាយក្នុងថតពុម្ពអក្សរពីម៉ឺនុយទម្លាក់ចុះ។
ទំហំ
កំណត់ទំហំពុម្ពអក្សរ។
ឈ្មោះ
ឈ្មោះដែលប្រើដើម្បីកំណត់ពុម្ពអក្សរនៅក្នុងកម្មវិធី។
BPP
កំណត់គែមមិនច្បាស់នៃអក្សរ។ ចំនួនប៊ីតកាន់តែតិច គែមអក្សរកាន់តែព្រិល។
ជួរ
ប្ដូរជួរអក្សរតាមបំណង ពោលគឺ ជួរ និង/ឬតួអក្សរដែលអ្នកចង់បញ្ចូល ឧទាហរណ៍ 0x20-0x7F។
និមិត្តសញ្ញា
បញ្ជីតួអក្សរដែលត្រូវបញ្ចូល។ សម្រាប់អតីតample, សួស្តី Holtek ABC0123ÁÉŐ។
បម្លែង
បន្ទាប់ពីពុម្ពអក្សរត្រូវបានបង្កើតដោយជោគជ័យ ព័ត៌មានពុម្ពអក្សរ file (.fnt), ក.c file និង .bin file នឹងត្រូវបានបង្កើតនៅក្រោមថត [ពុម្ពអក្សរ] ហើយពុម្ពអក្សរនឹងបង្ហាញនៅក្នុងតំបន់ [ពុម្ពអក្សរ] ក្នុងពេលតែមួយ។ ប្រសិនបើពុម្ពអក្សរដែលបានជ្រើសរើស file មិនមានពុម្ពអក្សរនៃនិមិត្តសញ្ញាបញ្ចូលទេ កំហុសនឹងត្រូវបានបង្ហាញ។
.fnt file កត់ត្រាព័ត៌មានពុម្ពអក្សរ។ អ្នកប្រើប្រាស់អាចបើកវាបាន file ដើម្បីកែសម្រួលប៉ារ៉ាម៉ែត្រដែលពាក់ព័ន្ធ ហើយបន្ទាប់មកបង្កើត .c file និង .bin file.
HT32 GUI-Builder នឹងរួមបញ្ចូល .c file ដើម្បីកំណត់ពុម្ពអក្សរ ប្រសិនបើអ្នកចង់ប្រើ .bin fileសូមយោងទៅមន្ត្រី LVGL webគេហទំព័រ។
[ពុម្ពអក្សរ] តំបន់
អ្នកប្រើអាចចុចកណ្ដុរស្ដាំលើពុម្ពអក្សរក្នុងផ្ទៃ [ពុម្ពអក្សរ] ដើម្បីលុបពុម្ពអក្សរ។

ចំណាំ៖ ពុម្ពអក្សរគឺផ្អែកលើគម្រោង និងពុម្ពអក្សរផ្ទាល់ខ្លួនដែលបានបង្កើត file ត្រូវបានរក្សាទុកនៅពេលរក្សាទុកគម្រោង។ ប្រសិនបើវាមិនត្រូវបានរក្សាទុកទេ វានឹងត្រូវបានសម្អាតនៅពេលដែលគម្រោងថ្មីត្រូវបានបើក។
បើក
បើកព័ត៌មានពុម្ពអក្សរ file (.fnt)
ការកំណត់ពុម្ពអក្សរ
ប្រសិនបើធាតុក្រាហ្វិកតម្រូវឱ្យកំណត់គុណលក្ខណៈពុម្ពអក្សរ ការកំណត់ [អត្ថបទ] នឹងបង្ហាញនៅក្នុងតំបន់ [រចនាប័ទ្មធាតុក្រាហ្វិក] ។ បន្ថែមពីលើពុម្ពអក្សរផ្ទាល់ខ្លួននៅក្នុងបញ្ជីទម្លាក់ចុះ ក៏មានពុម្ពអក្សរ monsterrat ដែលផ្តល់ដោយ LVGL ដើម្បីជ្រើសរើសផងដែរ។

ចំណាំថា HT32 GUI-Builder បង្កើតកូដប្រភព file នៅក្នុង UTF-8 ជាមួយនឹង Byte Order Mark (BOM) ហើយ Keil នឹងមិនអើពើជម្រើស –locale និង –[no_] multibyte_chars ហើយបកស្រាយ file ដូចជា UTF-8 ឬ UTF-16 ។
ទោះយ៉ាងណាក៏ដោយប្រសិនបើ file ត្រូវបានកែប្រែ និងរក្សាទុកក្នុង Keil Editor វានឹងត្រូវបានរក្សាទុកជារបៀបបំប្លែងកូដដែលបានកំណត់ក្នុងចំណុចប្រទាក់ការកំណត់ដូចបង្ហាញខាងក្រោម។ ទោះបីជារបៀបអ៊ិនកូដត្រូវបានកំណត់ទៅជា UTF8 ក៏ដោយ ក៏វាមិនអាចចងក្រង UTF-8 បានទេ ព្រោះមិនមាន BOM ។

៦.៦.៥. ការកំណត់

ទទឹង/កម្ពស់
កំណត់ប្រវែង និងទទឹងនៃអេក្រង់ដែលត្រូវនឹងផ្នែករឹង។
ជម្រៅ
កំណត់ជម្រៅពណ៌ដែលត្រូវតែផ្គូផ្គងផ្នែករឹង។
ការបង្វិល
កំណត់ទិសដៅ LCD ។
របៀបស្បែក
កំណត់រចនាប័ទ្មមូលដ្ឋាននៃ LVGL ទៅរបៀបងងឹត ឬរបៀបពន្លឺ។
LVGL
ជ្រើសរើសកំណែ LVGL ។ បច្ចុប្បន្នមានកំណែ 8.3.8 និងកំណែ 9.2.2 ដែលអាចប្រើបាន។
ក្តារ
ជ្រើសរើសផ្នែករឹងដែលគាំទ្របច្ចុប្បន្ន និងកម្មវិធីបញ្ជាបង្ហាញ។
SD FatFs
ប្រសិនបើជម្រើស [SD FatFs] ត្រូវបានបើក អ្នកអាចជ្រើសរើសថាតើត្រូវទៅយករូបភាពរបស់ធាតុក្រាហ្វិកពីកាត SD ដោយពិនិត្យមើលជម្រើស [FAT]។ ប្រសិនបើអ្នកជ្រើសរើសយករូបភាពពីកាត SD អ្នកត្រូវចម្លង .bin file ពីថត [រូបភាព] ទៅកាត SD មុនពេលប្រតិបត្តិកម្មវិធីបង្កប់។ អក្សរថាសសម្រាប់កាតអេសឌីគឺ S.

ថតឯកសារ Img
ប្រសិនបើ [SD FatFs] ត្រូវបានបើក ហើយ [Img Folder] ត្រូវបានធីក នៅពេលដែលរូបភាពរបស់ធាតុក្រាហ្វិកត្រូវបានជ្រើសរើសដើម្បីទាញយកពីកាត SD នោះផ្លូវផ្លាស់ប្តូរទៅ S:/[Image Folder] ដូចជា S:/EX5/Image.bin
ប្រសិនបើជម្រើស [Img Folder] មិនត្រូវបានធីកទេ រូបភាព file គួរតែត្រូវបានដាក់នៅក្រោម S: root directory ។
ឧបករណ៍ផ្ទុកខាងក្រៅ
- ESK32-A4A10(m4)+ESK32-A4A31(16-bit) core: HT32F42386
- ESK32-A4A10(m4)+ESK32-A4A32(16-bit) core: HT32F42386
នៅពេលដែលផ្ទាំងសាកល្បងខាងលើត្រូវបានជ្រើសរើស អ្នកអាចជ្រើសរើស External SRAM បន្ទាប់មកកម្មវិធីដែលបានបង្កើតនឹងកំណត់រចនាសម្ព័ន្ធអេក្រង់ពេញអេក្រង់នៅក្នុង SRAM ខាងក្រៅ ដើម្បីបង្កើនល្បឿននៃការបង្ហាញ។
- ESK32-A4A11(m4)+ESK32-A4A31(16-bit) core: HT32F49395
- ESK32-A4A11(m4)+ESK32-A4A32(16-bit) core: HT32F49395
នៅពេលជ្រើសរើសផ្ទាំងសាកល្បងខាងលើ អ្នកប្រើប្រាស់អាចជ្រើសរើស External SRAM ក៏ដូចជា External Flash ផងដែរ។
ប្រសិនបើ External Flash ត្រូវបានជ្រើសរើស ទិន្នន័យរូបភាពដែលបានបង្កើតទាំងអស់នឹងត្រូវបានរក្សាទុកនៅក្នុង External Flash ។
បន្ថែមឧបករណ៍បញ្ចូល
បន្ទះផ្សេងគ្នាគាំទ្រឧបករណ៍បញ្ចូលផ្សេងគ្នា។
- ESK32-2x001A(m0)+ESK32-A2A31(8-bit) core: HT32F52367
- ESK32-2x001A(m3)+ESK32-A2A31(16-bit) core: HT32F12366
- ESK32-2x001A(m4)+ESK32-A2A31(16-bit) core: HT32F42386
សម្រាប់អតីតample ជ្រើសរើសផ្ទាំងសាកល្បងខាងលើ ហើយប្រើ Wakeup/Key1/Key2 ដើម្បីអនុវត្តមុខងារក្តារចុច និងប៊ូតុង។
ក្តារចុច៖
ភ្ញាក់ = បញ្ចូលគន្លឹះ
Key1 = គ្រាប់ចុចពីមុន
Key2 = គ្រាប់ចុចបន្ទាប់
ប៊ូតុង៖
នៅក្នុង lv_port_indev.c fileកែប្រែ btn_points នៅក្រោម lv_port_indev_init ដើម្បីកំណត់ទីតាំងនៅលើអេក្រង់ដែលព្រឹត្តិការណ៍កើតឡើងនៅពេលចុចគ្រាប់ចុច។
ចំណាំ៖ ប្រសិនបើបន្ទះ ESK32-2x001A(m0)+ESK32-A2A31(8-bit) ត្រូវបានជ្រើសរើស នោះទទឹងទិន្នន័យ EBI 8-bit នឹងត្រូវបានប្រើដោយសារតែ hardware ។ សូមមើល Q4 នៃជំពូក FAQ សម្រាប់ព័ត៌មានលម្អិត។
- ESK32-A4A10(m4)+ESK32-A4A31(16-bit) core: HT32F42386
- ESK32-A4A10(m4)+ESK32-A4A32(16-bit) core: HT32F42386
- ESK32-A4A11(m4)+ESK32-A4A31(16-bit) core: HT32F49395
- ESK32-A4A11(m4)+ESK32-A4A32(16-bit) core: HT32F49395
នៅពេលជ្រើសរើសផ្ទាំងសាកល្បងខាងលើ សូមប្រើ Button0~2 ដើម្បីអនុវត្តមុខងារ Keypad និង Button ហើយប្រើ GT911 ដើម្បីអនុវត្តមុខងារ Touchpad និង Mouse។
ក្តារចុច៖
Button0 = បញ្ចូលគ្រាប់ចុច
Button1 = គ្រាប់ចុចពីមុន
Button2 = គ្រាប់ចុចបន្ទាប់
- ESK32-31401(m4)+ESK32-A4A31(16-bit) core: HT32F49395
- ESK32-31401(m4)+ESK32-A4A32(16-bit) core: HT32F49395
នៅពេលជ្រើសរើសផ្ទាំងអេក្រង់ខាងលើ មុខងារ Touchpad និង Mouse ត្រូវបានអនុវត្តជាមួយ GT911។
សម្រាប់ឧបករណ៍បញ្ចូលដែលមិនត្រូវបានគាំទ្រដោយផ្នែករឹង មានតែក្របខ័ណ្ឌប៉ុណ្ណោះដែលត្រូវបានបង្កើត។ សម្រាប់ការណែនាំលម្អិត សូមមើល "Exampការពិពណ៌នា" ជំពូក។
ទម្រង់ពណ៌ដែលបានបង្កើត
HT32 GUI-Builder គាំទ្រទម្រង់ពណ៌រូបភាពចំនួនប្រាំ៖ ពណ៌ពិត លិបិក្រម 8 ប៊ីត លិបិក្រម 4 ប៊ីត លិបិក្រម 2 ប៊ីត និងលិបិក្រម 1 ប៊ីត។ អ្នកប្រើប្រាស់អាចជ្រើសរើសទម្រង់ពណ៌ណាមួយ ដើម្បីអនុវត្តលើអេក្រង់។ ទោះយ៉ាងណាក៏ដោយ នៅពេលបង្កើតកូដ អ្នកប្រើប្រាស់អាចជ្រើសរើស៖
(1) បញ្ចេញតែទម្រង់ពណ៌ដែលបានប្រើ

(2) បញ្ចេញទម្រង់ពណ៌ដែលបានជ្រើសរើស

វាធ្វើឱ្យវាកាន់តែងាយស្រួលក្នុងការកែតម្រូវពណ៌នៃអេក្រង់កំឡុងពេលបង្កើតកម្មវិធីបង្កប់។
០១. File រចនាសម្ព័ន្ធ
ប្រសិនបើអ្នកចង់បន្ថែមកម្មវិធីបញ្ជាការបង្ហាញផ្ទាល់ខ្លួនរបស់អ្នក ឬឧបករណ៍បញ្ចូល អ្នកត្រូវយល់ពីគម្រោងជាមុនសិន file រចនាសម្ព័ន្ធដែលបង្កើតឡើងដោយ HT32 GUI-Builder ។

- main.c: កម្មវិធីចម្បង file
- lvgl_ui.c/lvgl_screen.c៖ អេក្រង់ទាក់ទងនឹងធាតុក្រាហ្វិក file
- lvgl_event.c៖ ដំណើរការព្រឹត្តិការណ៍
- [board]៖ កម្មវិធីបញ្ជាដែលទាក់ទងនឹងផ្នែករឹង
- [FatFs]៖ File ប្រព័ន្ធ files
- [រូបភាព]៖ រូបភាព files
- [ពុម្ពអក្សរ]៖ ពុម្ពអក្សរ files
- [lvgl-master]៖ បណ្ណាល័យ LVGL
- កម្មវិធីបញ្ជាដែលអាចប្ដូរតាមបំណង៖
♦ gpio.h៖ ការបង្ហាញ/ប៉ះ និងការកំណត់ម្ជុលសោ
♦ ht32_board_config.h៖ និយមន័យចំណុចប្រទាក់កាតអេសឌី
♦ lcd_driver.h៖ បង្ហាញនិយមន័យមុខងាររបស់កម្មវិធីបញ្ជា រួមទាំងប្រវែង/ទទឹង និងគុណភាពបង្ហាញ។ នេះ។ file រួមបញ្ចូលផងដែរនូវ .c files នៃកូដប្រភពកម្មវិធីបញ្ជាបង្ហាញ និងកូដប្រភពមុខងារប៉ះ។
♦ i2c1_gt911.c៖ កូដប្រភពមុខងារប៉ះ ដែលត្រូវបានរួមបញ្ចូលក្នុង lcd_driver.h file.
♦ icd_drvier_ssd1963៖ បង្ហាញកូដប្រភពកម្មវិធីបញ្ជា ដែលត្រូវបានដាក់បញ្ចូលក្នុង lcd_driver.h file.
♦ lv_port_indev.c៖ កម្មវិធីបញ្ជាបញ្ចូល
♦ lv_port_disp.c៖ បង្ហាញកម្មវិធីបញ្ជា
♦ sdio_sd.c: កម្មវិធីបញ្ជាចំណុចប្រទាក់កាតអេសឌី
អ្នកប្រើដែលចង់កំណត់ចំណុចប្រទាក់ផ្នែករឹងរបស់ខ្លួនត្រូវកែប្រែចំណុចខាងលើ files និងបំពេញមុខងារដែលពាក់ព័ន្ធនៅក្នុង .c file.
LVGL ប្រើការអ៊ិនកូដ UTF-8 ដើម្បីបង្ហាញតួអក្សរយូនីកូដសម្រាប់គ្រប់ភាសា ដូច្នេះ HT32 GUI Builder បង្កើតកូដប្រភព file នៅក្នុងការអ៊ិនកូដ UTF-8 ជាមួយនឹង Byte Order Mark (BOM)។
នៅពេលបង្កើតកូដ UI ឡើងវិញ មានដូចខាងក្រោម files ត្រូវបានបង្កើតឡើងវិញផងដែរ៖
lvgl_ui.c
lvgl_ui.h
lvgl_screen_n.c
lvgl_screen_n.h
និង files នៅក្រោមថតរូបភាព/ពុម្ពអក្សរ
កុំបន្ថែមកូដផ្ទាល់ខ្លួនរបស់អ្នកទៅទាំងនេះ files ដើម្បីជៀសវាងលេខកូដត្រូវបានសរសេរជាន់លើដោយ HT32 GUI-Builder ។
11. អតីតampការពិពណ៌នា
ជំពូកនេះយក 2x001a-1.hgb (ក្តារចុច) ជាអតីតample សម្រាប់ការពិពណ៌នា។

- label_0
- label_1
- button_1 & label_3
- button_0 & label_2
- switch_0
- រូបភាព_0
(1) label_0៖ កំណត់គុណលក្ខណៈស្លាកទៅជា Scroll Circular ដើម្បីធ្វើឱ្យតួអក្សរដំណើរការ។

(2) បង្កើតពុម្ពអក្សរ files.
ប្រសិនបើមានអក្សរចិននៅក្នុងស្លាក អ្នកត្រូវកំណត់ពុម្ពអក្សរចិន។ ប្រើឧបករណ៍បំប្លែងពុម្ពអក្សរដើម្បីបង្កើតពុម្ពអក្សរសម្រាប់អក្សរចិនទាំងប្រាំនៃ “盛群半導體”។ ដូចដែលបានបង្ហាញក្នុងរូប ពុម្ពអក្សរ NotoSansTC_Regular_14 នឹងត្រូវបានបង្កើត។

(3) ក្នុង Text\Text Font ក្រោមរចនាប័ទ្ម កំណត់ពុម្ពអក្សរស្លាកទៅជា NotoSansTC_Regular_14។

(4) label_1៖ កំណត់គុណលក្ខណៈស្លាកទៅជា Scroll Circular ដើម្បីធ្វើឱ្យតួអក្សរដំណើរការ។

កំណត់រចនាប័ទ្មអត្ថបទនៅក្រោមរចនាប័ទ្មទៅជាក្រហម/កណ្តាល/គូសបន្ទាត់ពីក្រោម/montserrat 28.

(5) image_0៖ មានវិធីពីរយ៉ាងក្នុងការបន្ថែមរូបភាពទៅអេក្រង់។ មួយគឺអូសរូបភាពដោយផ្ទាល់ពីតំបន់ [ទ្រព្យសកម្ម] ទៅកាន់អេក្រង់។ មួយទៀតគឺត្រូវបន្ថែមធាតុក្រាហ្វិករូបភាពជាដំបូងដោយប្រតិបត្តិការអូស និងទម្លាក់ ហើយបន្ទាប់មកជ្រើសរើសរូបភាពដែលត្រូវបានបន្ថែមទៅគម្រោងនៅក្នុងតំបន់លក្ខណៈពិសេស [រូបភាព] ធាតុក្រាហ្វិក។ ប្រសិនបើគម្រោងបានបើកជម្រើស SD FatFs អ្នកក៏អាចជ្រើសរើសថាតើត្រូវទៅយករូបភាពពី file ប្រព័ន្ធ។ ប្រសិនបើជម្រើស FAT ត្រូវបានធីក .bin file នៅក្នុងថត [រូបភាព] ចាំបាច់ត្រូវចម្លងទៅកាត SD មុនពេលកម្មវិធីបង្កប់ត្រូវបានប្រតិបត្តិ។


(6) កំណត់ label_2 ជាកូនរបស់ button_0 និង label_3 ជាកូនរបស់ button_1 ដោយប្រតិបត្តិការអូសនិងទម្លាក់។
(7) ជ្រើសរើស button_0 ហើយពិនិត្យជម្រើស CLICKED នៅក្រោម EVENT ដូចគ្នាទៅនឹង button_1។

(8) ជ្រើសរើស Dark Mode ហើយពិនិត្យ KeyPad នៅក្នុង [Settings]។

(9) ចុច [Save] ដើម្បីរក្សាទុកគម្រោង បន្ទាប់មកចុច [Code] ដើម្បីបង្កើតកូដ។
(10) ចម្លងថតដែលបានបង្កើតទៅ {Holtek Standard Peripheral Firmware Library}\application\{any folder} ហើយប្រតិបត្តិ _CreateProject.bat ដើម្បីបង្កើតគម្រោង Keil uVision IDE ។
(11) lv_port_indev.c គឺជាក្របខ័ណ្ឌ file នៃឧបករណ៍បញ្ចូលនិងអាចត្រូវបានកែប្រែដោយយោងតាមការកំណត់រចនាសម្ព័ន្ធផ្នែករឹង។
នៅក្នុងនេះ អតីតampដូច្នេះ HT32 GUI-Builder ប្រើ Key1/Key2/Wakeup នៅលើបន្ទះសាកល្បង ESK32-2x001A ដើម្បីបង្កើតកូដខាងក្រោមដោយស្វ័យប្រវត្តិសម្រាប់ KeyPad៖


Key1 គឺជាគ្រាប់ចុចពីមុន ហើយការចុច Key1 នឹងផ្លាស់ទីត្រឡប់មកវិញដើម្បីជ្រើសរើសធាតុក្រាហ្វិកផ្សេង។
Key2 គឺជាគ្រាប់ចុចបន្ទាប់ ហើយការចុច Key2 នឹងបន្តដើម្បីជ្រើសរើសធាតុក្រាហ្វិកផ្សេង។
Wakeup គឺជាគ្រាប់ចុច Enter ហើយការចុច Wakeup នឹងកេះព្រឹត្តិការណ៍ Click។
(12) lvgl_event.c គឺជាក្របខ័ណ្ឌ file សម្រាប់ធាតុក្រាហ្វិកដែលទទួលព្រឹត្តិការណ៍ អ្នកប្រើប្រាស់អាចបន្ថែមកូដក្នុងប្រអប់ក្រហមដូចបង្ហាញខាងក្រោម ប្រសិនបើ button_0 ត្រូវបានចុច នោះ Switch នឹងត្រូវបានប្តូរទៅ On ប្រសិនបើ button_1 ត្រូវបានចុច នោះ Switch នឹងត្រូវបានប្តូរទៅ Off វិញ។

ចំណាំ៖ 2x001a-1 Example ៖ សម្រាប់ដំណើរការព្រឹត្តិការណ៍ យោងទៅ lvgl_event.c ក្នុងថតឯកសារ។
2x001a-2 ឧample: សម្រាប់ការបង្វិលទ្រនិចនាឡិកា យោងទៅ main.c ក្នុងថតឯកសារ។
a4a10 ឧample ៖ សម្រាប់ការកំណត់ពណ៌អត្ថបទ និងលំហ សូមយោងទៅ lvgl_event.c ក្នុងថតឯកសារ។
12. សំណួរគេសួរញឹកញាប់
សំណួរទី 1: តើធ្វើដូចម្តេចដើម្បីកែលម្អបញ្ហាពន្យាពេលក្នុងការធ្វើឱ្យអេក្រង់ឡើងវិញ?
(1) លៃតម្រូវទំហំសតិបណ្ដោះអាសន្នបង្ហាញ
- ទំហំផ្ទុកអេក្រង់កាន់តែធំ ការធ្វើឱ្យស្រស់តែមួយមានប្រសិទ្ធភាពជាងមុន ប៉ុន្តែវាកាន់កាប់ទំហំ RAM កាន់តែច្រើន។
- កំណត់ទំហំផ្ទុកនៅក្នុង lv_port_disp_init(lv_port_disp.c)៖
ឋិតិវន្ត lv_disp_draw_buf_t draw_buf_dsc_1;
ឋិតិវន្ត lv_color_t buf_1[DISP_HOR_RES * 10];
lv_disp_draw_buf_init(&draw_buf_dsc_1, buf_1, NULL, DISP_HOR_RES * 10);
disp_drv.flush_cb = disp_flush;
disp_drv.draw_buf = &draw_buf_dsc_1; - កំណត់ទំហំផ្ទុកទៅយ៉ាងហោចណាស់ចំនួនប៊ីតសម្រាប់អេក្រង់ឆៅ (ទទឹង* 1)។
- ប្រសិនបើ RAM គ្រប់គ្រាន់ សូមកំណត់ទៅ 1/4 ឬច្រើនជាងនេះនៃទំហំអេក្រង់។
(2) កាត់បន្ថយអត្រាធ្វើឱ្យស្រស់
- កាត់បន្ថយអត្រាធ្វើឱ្យស្រស់នៃ LVGL ដើម្បីកាត់បន្ថយការគូរឡើងវិញដែលមិនចាំបាច់។
- កែប្រែ LV_DISP_DEF_REFR_PERIOD(V8) ឬ LV_DEF_REFR_PERIOD(V9) ក្នុង lv_conf.h file.
(3) កាត់បន្ថយស្រទាប់វត្ថុ
- ស្រទាប់ធាតុក្រាហ្វិកកាន់តែច្រើននៅក្នុង LVGL ដំណើរការបង្ហាញកាន់តែស្មុគស្មាញ។
- បង្រួមធាតុក្រាហ្វិកដែលបានដាក់។
(4) ប្រើតម្លាភាព និងរចនាប័ទ្មឱ្យបានត្រឹមត្រូវ
- កាត់បន្ថយតម្លាភាពដែលមិនចាំបាច់៖
lv_obj_set_style_bg_opa(obj, LV_OPA_COVER, 0); - កាត់បន្ថយការប្រើប្រាស់ផ្ទៃខាងក្រោយពណ៌ជម្រាល និងរចនាប័ទ្មស្មុគស្មាញ (ឧទាហរណ៍ ស្រមោល និងកាំ)។
(5) កុំប្រើចលនា
គំនូរជីវចលអាចបង្កឱ្យមានការគូរឡើងវិញញឹកញាប់ ដែលប៉ះពាល់ដល់ដំណើរការ។
LVGL រាប់ធាតុក្រាហ្វិក និងផ្នែកដែលចាំបាច់ត្រូវគូរឡើងវិញនៅពេលធ្វើឱ្យស្រស់នីមួយៗ។ ការគូរស្មុគ្រស្មាញជាមួយនឹងតំបន់មិនត្រឹមត្រូវជាច្រើននឹងបណ្តាលឱ្យមានចន្លោះពេលដំណើរការយូរជាងនេះ។ ត្រូវប្រាកដថាមានតែតំបន់ដែលបានធ្វើបច្ចុប្បន្នភាពប៉ុណ្ណោះដែលត្រូវបានគូរឡើងវិញ មិនមែនអេក្រង់ទាំងមូលទេ។ ប្រសិនបើគំនូរជីវចលច្រើនធ្វើបច្ចុប្បន្នភាពតំបន់ដូចគ្នាក្នុងពេលតែមួយ វានឹងបង្កើនចំនួននៃការគូរឡើងវិញដែលមិនចាំបាច់ ដូច្នេះអ្នកត្រូវបង្កើនប្រសិទ្ធភាពតក្កវិជ្ជាចលនាដោយដៃ។
សំណួរទី 2: តើធ្វើដូចម្តេចដើម្បីដោះស្រាយជាមួយនឹងរូបភាពទំហំធំ?
រូបភាពអាចមកពី៖
អថេរក្នុងកម្មវិធី៖ ជាធម្មតាវាជាអារេ C ដែលមានទិន្នន័យភីកសែលដាក់ក្នុង Flash ខាងក្នុង។
រក្សាទុកខាងក្រៅ files: ដូចជារូបភាព fileរក្សាទុកក្នុងកាតអេសឌី។ គម្រោងត្រូវតែគាំទ្រ file ប្រព័ន្ធ។
រូបភាព 320 × 240 ដែលមានជម្រៅពណ៌ 16 ប៊ីត ត្រូវការ 320 × 240 × 3 បៃ ឬរហូតដល់ 225K ។ ការរក្សាទុករូបភាពធំបែបនេះនៅក្នុង Flash ខាងក្នុងគឺមិនអាចអនុវត្តបាន។
ប្រសិនបើអ្នកពិនិត្យមើល [SD FatFs] នៅក្នុង [ការកំណត់] ដើម្បីបើកដំណើរការ file ប្រព័ន្ធនៃកាតអេសឌី ធាតុក្រាហ្វិកដែលត្រូវការរូបភាពអាចជ្រើសរើសដើម្បីទាញយករូបភាពពីកាតអេសឌី។ មុនពេលប្រតិបត្តិកម្មវិធីបង្កប់ សូមចម្លង .bin file ពីថត [រូបភាព] ទៅកាត SD ។
ទោះយ៉ាងណាក៏ដោយដោយសាររូបភាពគឺមកពី files ល្បឿននៃការធ្វើឱ្យស្រស់ប្រព័ន្ធត្រូវបានកំណត់ដោយល្បឿនអានកាតអេសឌី។ សម្រាប់អតីតampនៅពេលប្រើ HT32F12366 @ 96MHz ដើម្បីអានរូបភាព 320 × 240 ល្បឿនគឺប្រហែល 4fps ដែលមិនស័ក្តិសមសម្រាប់ការធ្វើឱ្យស្រស់លឿន និងទំហំធំ។
សំណួរទី 3: តើត្រូវបង្កើនទំហំអង្គចងចាំដើម្បីបន្ថែមធាតុក្រាហ្វិកបន្ថែមលើអេក្រង់យ៉ាងដូចម្តេច?
កូដដែលបង្កើតដោយ HT32 GUI-Builder កំណត់ប៉ារ៉ាម៉ែត្រខាងក្រោមនៅក្នុង lv_conf.h៖
#កំណត់ LV_MEM_CUSTOM 1 (V8)
#កំណត់ LV_USE_STDLIB_MALLOC LV_STDLIB_CLIB (V9)
នេះមានន័យថាត្រូវប្រើមុខងារស្តង់ដារ C ដើម្បីគ្រប់គ្រងអង្គចងចាំ៖ malloc/free/realloc ដែលចាំបាច់ត្រូវកំណត់ទំហំ [Heap]។

ចំនួនធាតុក្រាហ្វិកដែលអាចបន្ថែមបានប្រែប្រួលអាស្រ័យលើប្រភេទធាតុក្រាហ្វិក។ អ្នកប្រើប្រាស់អាចបង្កើន ឬបន្ថយទំហំ [Heap] តាមតម្រូវការកម្មវិធីរបស់ពួកគេ។
សំណួរទី 4: លេខកូដដែលបានបង្កើតមិនដំណើរការត្រឹមត្រូវទេ?
A. ប្រសិនបើជម្រើស [FAT] ត្រូវបានជ្រើសរើសក្នុងការកំណត់រូបភាព សូមប្រាកដថារូបភាពនោះ។ files ត្រូវបានរក្សាទុកក្នុងកាត SD ហើយផ្លូវគឺត្រឹមត្រូវ។
ខ. ពិនិត្យមើលថាតើធាតុក្រាហ្វិកច្រើនពេកត្រូវបានបន្ថែម ដែលបណ្តាលឱ្យមានកន្លែងទំនេរមិនគ្រប់គ្រាន់នៅក្នុង [Heap]។
សូមយោងទៅលើ Q3 ដើម្បីបង្កើនទំហំ [Heap]។
គ. ប្រសិនបើធាតុក្រាហ្វិកត្រូវបានកំណត់ដោយស្រមោល ឬកាំ វានឹងត្រូវការទំហំ [Heap] ធំជាងសម្រាប់ការគណនា សូមយោងទៅ Q3 ដើម្បីបង្កើនទំហំ [Heap] ផងដែរ។
សំណួរទី 5: ហេតុអ្វីបានជាទទឹងទិន្នន័យ EBI នៃ HT32F52367 8 ប៊ីត?
នៅពេលដែលក្រុមប្រឹក្សាភិបាល ESK32-2x001A ត្រូវបានផ្គូផ្គងជាមួយ HT32F52367, Key1 ត្រូវបានចែករំលែកជាមួយ EBI's AD9 ។ ដើម្បីការពារអេក្រង់មិនដំណើរការនៅពេលដែលឧបករណ៍បញ្ចូលប៊ូតុង ឬក្តារចុចត្រូវបានបើក ទទឹងទិន្នន័យ 8 ប៊ីត EBI ត្រូវបានប្រើតាមលំនាំដើម។
SW1 នៅខាងក្រោយម៉ូឌុលអេក្រង់ ESK32-A2A31 ត្រូវកំណត់ទៅ 1000 ដើម្បីគាំទ្រ EBI 8-bit។

របៀប 16 ប៊ីត របៀប 8 ប៊ីត
ប្រសិនបើឧបករណ៍បញ្ចូលប៊ូតុង ឬក្តារចុចមិនត្រូវបានបើកទេ អ្នកប្រើប្រាស់អាចកែប្រែ lv_drvier.h ដើម្បីផ្លាស់ប្តូរទទឹងទិន្នន័យ EBI ទៅជា 16 ប៊ីត ដើម្បីបង្កើនល្បឿនធ្វើឱ្យស្រស់។
#ifndef TFT_BIT_MODE
#កំណត់ TFT_BIT_MODE (TFT_16_BIT_MODE)
#endif
សំណួរទី 6: របៀបបន្ថែមកម្មវិធីបញ្ជាបង្ហាញឬឧបករណ៍បញ្ចូល?
យក ESK32-A4A31 5.0-inch (800×480) LCD capacitive touch panel គាំទ្រដោយ HT32 GUI-Builder ជាអតីតampដូច្នេះ IC កម្មវិធីបញ្ជាបង្ហាញគឺ SSD1963 ហើយ IC កម្មវិធីបញ្ជាប៉ះគឺ GT911 ។
- gpio.h៖ ការបង្ហាញ/ប៉ះ និងនិយមន័យម្ជុលគន្លឹះ។
- lcd_driver.h៖ បង្ហាញនិយមន័យមុខងារកម្មវិធីបញ្ជា រួមទាំងប្រវែង/ទទឹង និងគុណភាពបង្ហាញ។ នេះ។ file រួមបញ្ចូលផងដែរនូវ .c files នៃកូដប្រភពកម្មវិធីបញ្ជាបង្ហាញ និងកូដប្រភពមុខងារប៉ះ។


- icd_drvier_ssd1963៖ បង្ហាញកូដប្រភពកម្មវិធីបញ្ជា ដែលត្រូវបានរួមបញ្ចូលក្នុង lcd_driver.h file.
- i2c1_gt911.c៖ កូដប្រភពមុខងារប៉ះ ដែលជាកម្មសិទ្ធិរបស់ឧបករណ៍បញ្ចូល ហើយត្រូវបានបញ្ចូលក្នុង lcd_driver.h file.
- lv_port_indev.c៖
#ifdef_TOuchPAD_
ឋិតិវន្តជាមោឃៈ touchpad_init (ចាត់ទុកជាមោឃៈ);
static void touchpad_read(lv_indev_t * indev, lv_indev_data_t * data);
static bool touchpad_is_pressed(ទុកជាមោឃៈ);
ទុកជាមោឃៈ ឋិតិវន្ត touchpad_get_xy(int32_t * x, int32_t * y);
#endif
#ifdef_MOUSE_
ឋិតិវន្តជាមោឃៈ mouse_init(void);
ឋិតិវន្ត Mouse_read (lv_indev_t * indev, lv_indev_data_t * ទិន្នន័យ);
static bool mouse_is_pressed(ទុកជាមោឃៈ);
មោឃៈឋិតិវន្ត mouse_get_xy(int32_t * x, int32_t * y);
#endif
Touchpad និង Mouse គឺជាឧបករណ៍បញ្ចូលស្រដៀងគ្នា។
touchpad_init/mouse_init ហៅ Touch_Init ដើម្បីចាប់ផ្តើម I2C/pins និង GT911។
touchpad_is_pressed/mouse_is_pressed calls is_pressed ដើម្បីកំណត់ថាតើ touch pad ត្រូវបានចុចឬអត់។
touchpad_get_xy/mouse_get_xy ហៅ get_xy ដើម្បីទទួលបានទីតាំងដែលបន្ទះប៉ះត្រូវបានចុច។
ការហៅទូរសព្ទ touchpad_read/mouse_read ត្រូវបានចុច និង get_xy ដើម្បីទទួលបានស្ថានភាព និងទីតាំងក្នុងពេលដំណាលគ្នា។
រក្សាសិទ្ធិ © 2025 ដោយ HOLTEK SEMICONDUCTOR INC. រក្សាសិទ្ធិគ្រប់យ៉ាង។
ព័ត៌មានដែលបានផ្តល់នៅក្នុងឯកសារនេះត្រូវបានផលិតឡើងដោយមានការយកចិត្តទុកដាក់ និងការយកចិត្តទុកដាក់ដ៏សមហេតុផលមុនពេលបោះពុម្ពផ្សាយ ទោះបីជាយ៉ាងណាក៏ដោយ HOLTEK មិនធានាថាព័ត៌មាននោះត្រឹមត្រូវទាំងស្រុងនោះទេ។ ព័ត៌មានដែលមាននៅក្នុងការបោះពុម្ពនេះត្រូវបានផ្តល់ជូនសម្រាប់តែឯកសារយោងប៉ុណ្ណោះ ហើយអាចត្រូវបានជំនួសដោយការអាប់ដេត។ HOLTEK បដិសេធរាល់ការធានាដែលបានបង្ហាញ បង្កប់ន័យ ឬតាមច្បាប់ រួមទាំងប៉ុន្តែមិនកំណត់ចំពោះភាពស័ក្តិសមសម្រាប់ការធ្វើពាណិជ្ជកម្ម គុណភាពដែលពេញចិត្ត លក្ខណៈបច្ចេកទេស មុខងារ សម្បទាសម្រាប់គោលបំណងជាក់លាក់ និងមិនរំលោភសិទ្ធិរបស់ភាគីទីបីណាមួយឡើយ។ HOLTEK បដិសេធការទទួលខុសត្រូវទាំងអស់ដែលកើតចេញពីព័ត៌មាន និងកម្មវិធីរបស់វា។ លើសពីនេះ HOLTEK មិនណែនាំអោយប្រើប្រាស់ផលិតផលរបស់ HOLTEK ដែលមានហានិភ័យនៃគ្រោះថ្នាក់ផ្ទាល់ខ្លួនដោយសារដំណើរការខុសប្រក្រតី ឬហេតុផលផ្សេងទៀត។ HOLTEK សូមប្រកាសថា វាមិនអនុញ្ញាតឱ្យប្រើប្រាស់ផលិតផលទាំងនេះនៅក្នុងសមាសធាតុសំខាន់ៗដែលជួយសង្រ្គោះជីវិត ទ្រទ្រង់ជីវិត ឬសុវត្ថិភាពឡើយ។ រាល់ការប្រើប្រាស់ផលិតផលរបស់ HOLTEK ក្នុងកម្មវិធីសង្គ្រោះអាយុជីវិត/និរន្តរភាព ឬសុវត្ថិភាពគឺស្ថិតក្នុងហានិភ័យរបស់អ្នកទិញទាំងស្រុង ហើយអ្នកទិញយល់ព្រមការពារ ទូទាត់ និងរក្សាទុក HOLTEK ដោយមិនបង្កគ្រោះថ្នាក់ពីការខូចខាត ការទាមទារ ការប្តឹងផ្តល់ ឬការចំណាយដែលបណ្តាលមកពីការប្រើប្រាស់បែបនេះ។ ព័ត៌មានដែលបានផ្តល់នៅក្នុងឯកសារនេះ រួមទាំងប៉ុន្តែមិនកំណត់ចំពោះខ្លឹមសារ ទិន្នន័យ ឧamples, material, graphs, and trademarks, គឺជាកម្មសិទ្ធិបញ្ញារបស់ HOLTEK (និងអ្នកផ្តល់អាជ្ញាប័ណ្ណរបស់វា, ដែលជាកន្លែងដែលអាចអនុវត្តបាន) និងត្រូវបានការពារដោយច្បាប់រក្សាសិទ្ធិនិងច្បាប់កម្មសិទ្ធិបញ្ញាផ្សេងទៀត។ គ្មានអាជ្ញាប័ណ្ណ បង្ហាញ ឬបង្កប់ន័យចំពោះសិទ្ធិកម្មសិទ្ធិបញ្ញាណាមួយត្រូវបានផ្តល់ដោយ HOLTEK នៅទីនេះ។ HOLTEK រក្សាសិទ្ធិក្នុងការត្រួតពិនិត្យឡើងវិញនូវព័ត៌មានដែលបានពិពណ៌នានៅក្នុងឯកសារនៅពេលណាក៏បានដោយមិនចាំបាច់ជូនដំណឹងជាមុន។ សម្រាប់ព័ត៌មានចុងក្រោយ សូមទាក់ទងមកយើងខ្ញុំ។
Rev. 1.00 ថ្ងៃទី 13 ខែមិថុនា ឆ្នាំ 2025
ឯកសារ/ធនធាន
![]() |
HOLTEK HT32F52367 អ្នកបង្កើត GUI [pdf] ការណែនាំអ្នកប្រើប្រាស់ HT32F52367 GUI Builder, HT32F52367, GUI Builder, Builder |
[ថ្មី]
[ថ្មីៗ]
[បើក]

[នាំចូល]

[រក្សាទុក]

[+Scrn]

[-Scrn]
[ចម្លង]
[បិទភ្ជាប់]
[កាត់]
[លុប]
[ពុម្ពអក្សរ]

[កូដ]

[កូដ UI]
[លេង]

[ការកំណត់]










