បណ្ណាល័យ UM3236 LVGL សម្រាប់អេក្រង់ LCD
សៀវភៅណែនាំអ្នកប្រើប្រាស់
សេចក្តីផ្តើម
នៅក្នុងបរិបទទំនើបនៃឧស្សាហកម្មរថយន្ត វាជារឿងធម្មតាក្នុងការអភិវឌ្ឍន៍ GUIs កាន់តែច្រើនឡើងៗ សូម្បីតែអេក្រង់ LCD តូចក៏ដោយ។ ដើម្បីបំពេញតម្រូវការនេះ សមាសធាតុថ្មី AEK-LCD-LVGL ត្រូវបានបង្កើត និងបញ្ចូលទៅក្នុងប្រព័ន្ធអេកូ AutoDevKit ។
សមាសភាគថ្មីនេះនាំចូលបណ្ណាល័យក្រាហ្វិក LVGL ហើយវាត្រូវបានប្រើជាមួយសមាសភាគ AEK-LCD-DT028V1 ដើម្បីបង្កើត GUI ស្មុគស្មាញលឿនជាងមុន។
LVGL (បណ្ណាល័យក្រាហ្វិចស្រាល និងអាចប្រើប្រាស់បាន) គឺជាបណ្ណាល័យក្រាហ្វិកប្រភពបើកចំហឥតគិតថ្លៃ សរសេរជាភាសា C ផ្តល់ឧបករណ៍ដើម្បីបង្កើត GUI ជាមួយនឹងក្រាហ្វិកងាយស្រួលប្រើ បែបផែនរូបភាពល្អ និងកាន់កាប់អង្គចងចាំទាប។
LVGL មានថាមពលខ្លាំងព្រោះវាមានធាតុដែលបានកំណត់ជាមុន ដូចជាប៊ូតុង តារាង បញ្ជី គ្រាប់រំកិល និងរូបភាព។ ការបង្កើតក្រាហ្វិកជាមួយនឹងចលនា ការប្រឆាំងឈ្មោះក្លែងក្លាយ ភាពស្រអាប់ និងការរមូរដោយរលូនត្រូវបានធ្វើឱ្យសាមញ្ញជាមួយ LVGL ។ បណ្ណាល័យអាចប្រើជាមួយឧបករណ៍បញ្ចូលជាច្រើនប្រភេទ ដូចជា បន្ទះប៉ះ កណ្តុរ ក្តារចុច និងឧបករណ៍បំលែងកូដ។ គោលបំណងនៃសៀវភៅណែនាំអ្នកប្រើប្រាស់នេះគឺដើម្បីបង្ហាញពីរបៀបបង្កើត LCD GUI យ៉ាងងាយស្រួលដោយប្រើ AutoDevKit ។
ចំណាំ៖ សម្រាប់ព័ត៌មានលម្អិតអំពី LVGL សូមមើលឯកសារផ្លូវការ។ កូដប្រភពមានសម្រាប់ទាញយកពី GitHub ។
ស្ថាបត្យកម្ម AEK-LVGLរូបភាពខាងលើបង្ហាញពីស្ថាបត្យកម្មកម្មវិធី LVGL ដែលរួមបញ្ចូលទៅក្នុង AutoDevKit ។
ស្ថាបត្យកម្មកម្មវិធីត្រូវបានកំណត់លក្ខណៈដោយ៖
- បណ្ណាល័យ LVGL៖ វាអនុវត្តមុខងារក្រាហ្វិកកម្រិតខ្ពស់ដោយផ្អែកលើបណ្ណាល័យក្រាហ្វិកមូលដ្ឋាន AEK-LCD-DT028V1៖
– aek_ili9341_drawPixel៖ វាបោះពុម្ពភីកសែលនៅលើអេក្រង់ LCD AEK-LCD-DT028V1;
- aek_lcd_get_touchFeedback: វារកឃើញការប៉ះនៅលើអេក្រង់ LCD AEK-LCD-DT028V1 ។
- aek_lcd_read_touchPos៖ វាទទួលបានកូអរដោនេនៃចំណុចប៉ះ។
– aek_lcd_set_touch មតិប្រតិកម្ម៖ វាទង់ថាសកម្មភាពប៉ះត្រូវបានបញ្ចប់។ - បណ្ណាល័យក្រាហ្វិកមូលដ្ឋាន៖ វាអនុវត្តមុខងារក្រាហ្វិកមូលដ្ឋាន និងហៅកម្មវិធីបញ្ជាកម្រិតទាប។
- កម្មវិធីបញ្ជាកម្រិតទាប៖ វាអនុវត្តគ្រឿងកុំព្យូទ័រ MCU ។ ក្នុងករណីនេះពិធីការ SPI ត្រូវបានប្រើ។
- AEK-LCD-DT028V1: បន្ទះវាយតម្លៃ LCD ។
មូលដ្ឋានគ្រឹះ LVGL
បណ្ណាល័យ LVGL ធ្វើអន្តរកម្មជាមួយសមាសធាតុ AEK-LCD-DT028V1 តាមរយៈកម្មវិធីបញ្ជាពីរ Disprove និង IndevDriver ដូចបង្ហាញក្នុងរូបភាពខាងក្រោម។Disprove ទទួលបន្ទុករៀបចំរូបភាពបណ្តោះអាសន្ន ហើយបញ្ជូនវាទៅស្រទាប់ខាងក្រោម ដើម្បីបង្ហាញវានៅលើ LCD។ វាប្រើរចនាសម្ព័ន្ធវាយបញ្ចូល lv_disp_drv_t ខាងក្រោម៖
- draw_buf៖ វាចង្អុលទៅរចនាសម្ព័ន្ធសតិបណ្ដោះអាសន្នដែល LVGL គូរ។
- អ្នកជួល៖ គុណភាពបង្ហាញផ្ដេកនៃអេក្រង់ជាភីកសែល។
- Verres៖ គុណភាពបង្ហាញបញ្ឈរនៃការបង្ហាញជាភីកសែល។
- flush_cb៖ វាចង្អុលទៅមុខងារដែលប្រើដើម្បីបោះពុម្ពសតិបណ្ដោះអាសន្នទៅអេក្រង់ LCD។
- monitor_cb៖ វាត្រួតពិនិត្យចំនួនភីកសែល និងពេលវេលាដែលត្រូវការដើម្បីបង្ហាញទិន្នន័យ។
នៅផ្នែកម្ខាងទៀត IndevDriver ទាញយកព័ត៌មាន LCD touch ដែលមកពីស្រទាប់ខាងក្រោម។ វាប្រើរចនាសម្ព័ន្ធវាយបញ្ចូល lv_indev_drv_t ខាងក្រោម៖
ប្រភេទ៖ វាលនេះមានប្រភេទឧបករណ៍បញ្ចូល។ ម៉ាក្រូដែលមានកំណត់ជាមុនរួមមាន:
– LV_INDEV_TYPE_POINTER (ប្រើក្នុងករណីរបស់យើង)
– LV_INDEV_TYPE_KEYPAD
– LV_INDEV_TYPE_ENCODER
– LV_INDEV_TYPE_BUTTON
redact៖ វាចង្អុលទៅមុខងារដែលប្រើដើម្បីទាញយកព័ត៌មានប៉ះ។
flush_cb និង redact៖ ត្រូវបានហៅតាមកាលកំណត់ រៀងគ្នានៅលើអេក្រង់ដែលកំណត់ដោយអ្នកប្រើប្រាស់ និងប៉ះការបញ្ចូលការធ្វើឱ្យស្រស់។ បណ្ណាល័យ LVGL គ្រប់គ្រងពេលវេលាធ្វើឱ្យស្រស់តាមរយៈនាឡិកាខាងក្នុង។ មុខងារ LVGL មូលដ្ឋានចំនួនពីរត្រូវបានប្រើសម្រាប់ការគ្រប់គ្រងពេលវេលា៖ - lv_tick_inc(uint32_t x): គោលបំណងនៃមុខងារនេះគឺដើម្បីធ្វើសមកាលកម្មពេលវេលា LVGL ជាមួយនឹងពេលវេលាជាក់ស្តែងរបស់ MCU ។ ការធ្វើបច្ចុប្បន្នភាពធីកត្រូវកំណត់ចន្លោះពី 1 ទៅ 10 មិល្លីវិនាទី យោងទៅតាមការបញ្ជាក់របស់ LVGL ។ ក្នុង
ករណីរបស់យើង យើងកំណត់វាទៅ 5 មិល្លីវិនាទី។ - lv_timer_handler (ចាត់ទុកជាមោឃៈ): វាធ្វើបច្ចុប្បន្នភាពវត្ថុ LVGL ខាងក្នុងដោយផ្អែកលើពេលវេលាដែលបានកន្លងផុតទៅ។ ពេលវេលាជាក់ស្តែងត្រូវបានត្រួតពិនិត្យតាមរយៈឧបករណ៍កំណត់ពេលរំខានកម្មវិធី (PIT) នៃ MCU ។
ចំណុចប្រទាក់រវាង LVGL និងសមាសភាគ AEK-LCD-DT028V1
ចំណុចប្រទាក់រវាង AEK-LCD-LVGL និងសមាសភាគ AEK-LCD-DT028V1 ត្រូវបានអនុវត្តដោយ file មានឈ្មោះ lcd_lvgl.c ដែលមានទីតាំងនៅក្រោមថត “aek_lcd_lvgl_component_rla” ។ នេះ។ file មានមុខងារដើម្បី៖
- ចាប់ផ្តើមបណ្ណាល័យ LVGL,
- គ្រប់គ្រងកម្មវិធីកំណត់ម៉ោងខាងក្នុង LVGL,
- ចំណុចប្រទាក់បណ្ណាល័យ LVGL ជាមួយនឹងបណ្ណាល័យក្រាហ្វិកមូលដ្ឋានដែលអនុវត្តដោយសមាសភាគ AEK-LCD-DT028V1 ។
មុខងារសំខាន់ៗទាំងប្រាំត្រូវបានពន្យល់ក្នុងកថាខណ្ឌខាងក្រោម។
3.1 ការបង្ហាញ Init
មុខងារ aek_lcd_lvgl_display_init ចាប់ផ្តើមរចនាសម្ព័ន្ធគន្លឹះ LVGL ពីរគឺ Disprove និង IndevDriver ។
3.1.1 បដិសេធ
គោលដៅសំខាន់នៃរចនាសម្ព័ន្ធ Disprove គឺដើម្បីរក្សាសតិបណ្ដោះអាសន្នគំនូរសម្រាប់ LVGL ។ វាល Disprove draw_buf ចង្អុលទៅរចនាសម្ព័ន្ធសតិបណ្ដោះអាសន្នអង្គចងចាំដែលអាចផ្ទុកអង្គចងចាំរហូតដល់ពីរផ្សេងគ្នា។ វាល draw_buf ត្រូវបានចាប់ផ្តើមជាមួយមុខងារ lv_disp_draw_buf_init() ។នៅក្នុងកូដខាងលើ ប៉ារ៉ាម៉ែត្រ DISP_HOR_RES និង DISP_VER_RES តំណាងឱ្យវិមាត្រ LCD ។
ចំណាំ៖
ទំហំសតិបណ្ដោះអាសន្នត្រូវតែប្ដូរតាមបំណងដោយអនុលោមតាមអង្គចងចាំដែលមានប្រព័ន្ធ។ មគ្គុទ្ទេសក៍ LVGL ផ្លូវការណែនាំអោយជ្រើសរើសទំហំផ្ទាំងគំនូរយ៉ាងហោចណាស់ 1/10 នៃទំហំអេក្រង់។ ប្រសិនបើសតិបណ្ដោះអាសន្នជាជម្រើសទីពីរត្រូវបានប្រើប្រាស់ LVGL អាចចូលទៅក្នុងសតិបណ្ដោះអាសន្នមួយ ខណៈដែលទិន្នន័យនៃសតិបណ្ដោះអាសន្នផ្សេងទៀតត្រូវបានផ្ញើទៅបង្ហាញក្នុងផ្ទៃខាងក្រោយ។ប៉ារ៉ាម៉ែត្រផ្សេងទៀតនៃរចនាសម្ព័ន្ធគឺទំហំអេក្រង់ មុខងារពីរគឺ flush និង monitor_cb ដែលយើងនឹងវិភាគនៅពេលក្រោយ។ នៅពេលដែលបានបំពេញ រចនាសម្ព័ន្ធត្រូវតែត្រូវបានចុះឈ្មោះជាមួយនឹងមុខងារ lv_disp_drv_register() ដើម្បីកំណត់ការបង្ហាញសកម្ម។
3.1.2 IndevDriver
IndevDriver ត្រូវបានចាប់ផ្តើមដូចខាងក្រោម:វាលដែលបានកំណត់សំខាន់គឺជាប្រភេទឧបករណ៍ដែលបានប្រើ និងមុខងារដើម្បីគ្រប់គ្រងវា។ ក្នុងករណីនេះផងដែរ រចនាសម្ព័ន្ធដែលបានចាប់ផ្តើមត្រូវតែចុះឈ្មោះដើម្បីធ្វើឱ្យឧបករណ៍ក្លាយជាសកម្ម។
3.2 ទឹកហូរ
មុខងារ flush ប្រើបណ្ណាល័យក្រាហ្វិកមូលដ្ឋាននៃសមាសភាគ AEK-LCD-DT028V1 ដើម្បីគូរនៅលើ LCD រូបភាពដែលមានវត្តមាននៅក្នុងសតិបណ្ដោះអាសន្នត្រូវបានចាប់ផ្តើមដោយយោងតាមកថាខណ្ឌមុន។គ្រោងនៃមុខងារ flush ត្រូវបានផ្តល់ដោយមុខងារ LVGL និងប្ដូរតាមបំណងសម្រាប់កម្មវិធីបញ្ជាអេក្រង់ LCD ដែលកំពុងប្រើប្រាស់ (ឧទាហរណ៍ aek_ili9341_drawPixel – pixel drawing)។ ប៉ារ៉ាម៉ែត្របញ្ចូលគឺ៖
- ស្ងួត : ចង្អុលទៅ Disprove
- area: buffer ដែលផ្ទុកតំបន់ជាក់លាក់ដែលត្រូវការធ្វើបច្ចុប្បន្នភាព
- color: buffer ដែលមានពណ៌ដែលត្រូវបោះពុម្ព។
3.3 monitor_cb
មុខងារ monitor_cb ត្រូវបានកំណត់នៅក្នុងការណែនាំផ្លូវការរបស់ LVGL ហើយមិនតម្រូវឱ្យមានការប្ដូរតាមបំណងទេ។3.4 my_input_read
មុខងារ my_input_read ទទួលបន្ទុកគ្រប់គ្រងការបញ្ចូលដែលមកពីអេក្រង់ LCD នៅកម្រិតខ្ពស់។
គ្រោងមុខងារត្រូវបានកំណត់ដោយបណ្ណាល័យ LVGL ។ ប៉ារ៉ាម៉ែត្របញ្ចូលគឺ៖
- drv: ចង្អុលទៅកម្មវិធីបញ្ជាបញ្ចូលដែលបានចាប់ផ្ដើម
- ទិន្នន័យ៖ មានកូអរដោនេ x,y ដែលបានបំប្លែងពីភីកសែលនៃចំណុចប៉ះ រូបភាពខាងក្រោមបង្ហាញពីការអនុវត្តមុខងារ my_input_read៖
3.5 ធ្វើឱ្យអេក្រង់ស្រស់
មុខងារ aek_lcd_lvgl_refresh_screen ធ្វើបច្ចុប្បន្នភាពកម្មវិធីកំណត់ម៉ោងខាងក្នុង LVGL ។
ចំណាំ៖ មុខងារនេះត្រូវតែដាក់ឱ្យត្រឹមត្រូវនៅក្នុងកូដកម្មវិធី ដើម្បីបំពេញលក្ខខណ្ឌពេលវេលា LVGL ។
ប្រព័ន្ធអេកូ AutoDevKit
ការអភិវឌ្ឍន៍កម្មវិធីដែលប្រើ AEK-LCD-LVGL ត្រូវការ advan ពេញលេញtage នៃ AutoDevKit ប្រព័ន្ធអេកូឡូស៊ី ដែលមានធាតុផ្សំជាមូលដ្ឋានគឺ៖
- AutoDevKit Studio IDE អាចដំឡើងបានពី www.st.com/autodevkitsw
- កម្មវិធីបំបាត់កំហុស SPC5-UDESTK សម្រាប់ Windows ឬកម្មវិធីបំបាត់កំហុសដែលបានបើក
- ដ្រាយ AEK-LCD-LVGL
4.1AutoDevKit Studio
ស្ទូឌីយោ AutoDevKit (STSW-AUTODEVKIT) គឺជាបរិយាកាសអភិវឌ្ឍន៍រួមបញ្ចូលគ្នា (IDE) ផ្អែកលើ Eclipse ដែលត្រូវបានរចនាឡើងដើម្បីជួយដល់ការអភិវឌ្ឍន៍កម្មវិធីបង្កប់ដោយផ្អែកលើ SPC5 Power Architecture 32-bit microcontrollers ។
កញ្ចប់រួមបញ្ចូលអ្នកជំនួយការកម្មវិធីដើម្បីផ្តួចផ្តើមគម្រោងជាមួយនឹងសមាសធាតុពាក់ព័ន្ធទាំងអស់ និងធាតុសំខាន់ៗដែលត្រូវការដើម្បីបង្កើតកូដប្រភពកម្មវិធីចុងក្រោយ។ ស្ទូឌីយោ AutoDevKit ក៏មានលក្ខណៈពិសេសផងដែរ៖
- លទ្ធភាពនៃការរួមបញ្ចូលផលិតផលកម្មវិធីផ្សេងទៀតពីទីផ្សារ Eclipse ស្តង់ដារ
- អាជ្ញាប័ណ្ណឥតគិតថ្លៃ GCC GNU C Compiler សមាសភាគ
- ការគាំទ្រសម្រាប់អ្នកចងក្រងស្តង់ដារឧស្សាហកម្ម
- ការគាំទ្រសម្រាប់ microcontrollers ពហុស្នូល
- កម្មវិធីនិពន្ធ PinMap ដើម្បីជួយសម្រួលដល់ការកំណត់រចនាសម្ព័ន្ធម្ជុល MCU
- សមាសធាតុផ្នែករឹង និងសូហ្វវែររួមបញ្ចូលគ្នា ការត្រួតពិនិត្យភាពឆបគ្នានៃសមាសភាគ និង MCU និងឧបករណ៍កំណត់រចនាសម្ព័ន្ធគ្រឿងកុំព្យូទ័រ
- លទ្ធភាពនៃការបង្កើតដំណោះស្រាយប្រព័ន្ធថ្មីពីប្រព័ន្ធដែលមានស្រាប់ដោយបន្ថែម ឬដកបន្ទះមុខងារដែលត្រូវគ្នាចេញ
- កូដថ្មីអាចត្រូវបានបង្កើតភ្លាមៗសម្រាប់ MCU ដែលត្រូវគ្នា។
- APIs កម្មវិធីកម្រិតខ្ពស់ ដើម្បីគ្រប់គ្រងសមាសធាតុមុខងារនីមួយៗ រួមទាំងសមាសធាតុសម្រាប់ AEK-LCDLVGL ផងដែរ។
សម្រាប់ព័ត៌មានបន្ថែមq សូមមើល UM2623 (ជាពិសេសផ្នែកទី 6 និងផ្នែកទី 7) ឬមើលវីដេអូបង្រៀន។
4.2 សមាសភាគ AEK_LCD_LVGL
កម្មវិធីបញ្ជា AEK-LVGL ត្រូវបានផ្តល់ជូនជាមួយនឹងការដំឡើង STSW-AUTODEVKIT (ពីកំណែ 2.0.0 នៅលើ) ដើម្បីជួយសម្រួលដល់ដំណាក់កាលនៃការសរសេរកម្មវិធី។
ធ្វើបច្ចុប្បន្នភាពការដំឡើង AutoDevKit របស់អ្នក ដើម្បីទទួលបានកំណែចុងក្រោយបំផុត។ នៅពេលដំឡើងត្រឹមត្រូវ ជ្រើសរើសសមាសភាគដែលមានឈ្មោះ AEK_LVGL Component RLA ។
4.2.1 ការកំណត់រចនាសម្ព័ន្ធសមាសភាគ AEK_LCD_LVGL
ដើម្បីកំណត់រចនាសម្ព័ន្ធសមាសភាគ សូមអនុវត្តតាមនីតិវិធីខាងក្រោម។
ជំហានទី 1. កំណត់ពេលវេលា Refr_Period ។ នេះគឺជារយៈពេលនៃការធ្វើឱ្យស្រស់អេក្រង់ (តម្លៃដែលបានណែនាំគឺ 30)។
ជំហានទី 2. កំណត់ពេលវេលា Read_Period ។ នេះគឺជាពេលវេលាអប្បបរមារវាងការរកឃើញការប៉ះពីរបន្ទាប់ (តម្លៃដែលបានណែនាំគឺ 30)។
ជំហានទី 3. ធីកប្រអប់ Draw Complex ដើម្បីបើកធាតុក្រាហ្វិកកម្រិតខ្ពស់ដូចជា ស្រមោល ជម្រាល ជ្រុងមូល រង្វង់ ធ្នូ បន្ទាត់ skew និងការបំប្លែងរូបភាព។
ជំហានទី 4. ជ្រើសរើសពុម្ពអក្សរដែលអ្នកចង់ប្រើ។ ពិចារណាថាពុម្ពអក្សរនីមួយៗត្រូវការអង្គចងចាំពន្លឺបន្ថែមសម្រាប់កូដកម្មវិធីដែលបានបង្កើត។
របៀបបង្កើតគម្រោង AutoDevKit ជាមួយសមាសធាតុ AEK-LCD-LVGL ដោយផ្អែកលើ SPC58EC
ជំហានគឺ៖
ជំហានទី 1. បង្កើតកម្មវិធី AutoDevKit Studio ថ្មីសម្រាប់ microcontroller ស៊េរី SPC58EC ហើយបន្ថែមសមាសធាតុដូចខាងក្រោមៈ
- SPC58ECxx Init Package Component RLA
- សមាសធាតុកម្មវិធីបញ្ជាកម្រិតទាប SPC58ECxx RLA
ចំណាំ៖
បន្ថែមសមាសធាតុទាំងនេះនៅដើម បើមិនដូច្នេះទេ សមាសធាតុដែលនៅសល់មិនអាចមើលឃើញទេ។
ជំហាន 2. បន្ថែមសមាសភាគបន្ថែមខាងក្រោម:
ជំហានទី 2 ក។ សមាសធាតុកញ្ចប់ AutoDevKit Init
ជំហានទី 2 ខ។ សមាសធាតុវេទិកា SPC58ECxx RLA
ជំហានទី 2 គ។ AEK-LCD-DT028V1 សមាសធាតុ RLA (សូមមើល UM2939 សម្រាប់ការកំណត់)
ជំហានទី 2 ឃ។ សមាសធាតុ AEK-LCD-LVGL RLAជំហានទី 3. ចុចប៊ូតុង [ការបែងចែក] នៅក្នុងបង្អួចកំណត់រចនាសម្ព័ន្ធ AEK-LCD-LVGL ។ ប្រតិបត្តិការនេះផ្ទេរការកំណត់រចនាសម្ព័ន្ធ AEK-LCD-LVGL ទៅ AutoDevKit ។
ជំហានទី 4. ការបែងចែកបានបើកឧបករណ៍កំណត់ម៉ោង PIT ។ អ្នកអាចផ្ទៀងផ្ទាត់វានៅក្នុងសមាសភាគកម្មវិធីបញ្ជាកម្រិតទាប។ជំហាន 5. បង្កើត និងបង្កើតកម្មវិធីដោយប្រើរូបតំណាងសមរម្យនៅក្នុងស្ទូឌីយោ AutoDevKit ។ បន្ទាប់មកថតគម្រោងត្រូវបានបញ្ចូលជាមួយថ្មី។ files រួមទាំង main.c. ថតសមាសភាគត្រូវបានបំពេញបន្ទាប់មកជាមួយ AEKLCD-DT028V1 និង
កម្មវិធីបញ្ជា AEK-LCD-LVGL ។
ជំហានទី 6. បើក manic file និងរួមបញ្ចូល AEK-LCD-DT028V1.h និង AEK_LCD_LVGL.h files.ជំហានទី 7. នៅក្នុង manic នេះ។ fileបន្ទាប់ពីមុខងារ irqIsrEnable() បញ្ចូលមុខងារចាំបាច់ខាងក្រោម៖
ជំហានទី 8. នៅក្នុង main.c សូមចម្លង និងបិទភ្ជាប់អតីតample ពីបណ្ណាល័យ LVGL យកចេញពីមគ្គុទ្ទេសក៍ផ្លូវការ ហើយបញ្ចូលវាទៅក្នុង main()។
ជំហានទី 9. រក្សាទុក បង្កើត និងចងក្រងកម្មវិធី។
ជំហានទី 10. បើកក្តារ view កម្មវិធីនិពន្ធដែលផ្តល់ដោយ AutoDevKit នេះផ្តល់នូវការណែនាំពីចំណុចមួយទៅចំណុចក្រាហ្វិកមួយ អំពីរបៀបភ្ជាប់បន្ទះក្តារ។
ជំហានទី 11. ភ្ជាប់ AEK-LCD-DT028V1 ទៅកាន់រន្ធ USB នៅលើកុំព្យូទ័ររបស់អ្នកដោយប្រើខ្សែ USB ខ្នាតតូចទៅ USB ។
ជំហានទី 12. បើកដំណើរការ SPC5-UDESTK-SW ហើយបើកកម្មវិធីបំបាត់កំហុស file នៅក្នុងថត AEK-LCD-LVGL- កម្មវិធី / UDE ។
ជំហានទី 13. ដំណើរការ និងបំបាត់កំហុសកូដរបស់អ្នក។
ការបង្ហាញដែលមានសម្រាប់ AEK-LVGL
មានការបង្ហាញជាច្រើនដែលផ្តល់ដោយសមាសធាតុ AEK-LCD-LVGL៖
- កម្មវិធីសាកល្បង SPC582Bxx_RLA AEK_LCD_LVGL
- កម្មវិធីសាកល្បង SPC58ECxx_RLA AEK-LCD_LVGL
- ការបង្ហាញ AVAS អេក្រង់ពីរ - SPC58ECxx_RLA_MainEcuForIntegratAVASControl - កម្មវិធីសាកល្បង
ចំណាំ៖ ការបង្ហាញកាន់តែច្រើនអាចនឹងមានជាមួយនឹងការចេញផ្សាយ AutoDevKit ថ្មី។
កម្មវិធីកម្រិតខ្ពស់ ឧample – ការបង្ហាញ AVAS អេក្រង់ពីរ
កម្មវិធីកម្រិតខ្ពស់ត្រូវបានអនុវត្តដោយប្រើ LVGL ។ កម្មវិធីនេះគូររង្វាស់រង្វាស់រថយន្តសម្រាប់ rpms ម៉ាស៊ីននៅក្នុងការបង្ហាញ និងគ្រប់គ្រងចលនារង្វាស់ដែលទាក់ទង។
កម្មវិធី AVAS ដែលបានអនុវត្តគឺផ្អែកលើបន្ទះ AEK-AUD-C1D9031 និងក្លែងបន្លំសំឡេងម៉ាស៊ីនរថយន្តក្នុងល្បឿនទាប ដើម្បីព្រមានអ្នកថ្មើរជើងអំពីរថយន្តអគ្គិសនីដែលមកជិត។
នៅក្នុងការបង្ហាញ យើងក្លែងធ្វើការបង្កើនល្បឿន និងការបន្ថយល្បឿន (មានន័យថា ការកើនឡើង/បន្ថយ rpms) នៃម៉ាស៊ីនរថយន្ត និងកម្រិតសំឡេងរបស់វាតាមរយៈផ្ទាំងបញ្ជាដែលបានអនុវត្តនៅលើអេក្រង់ LCD នៃ AEK-LCD-DT028V1។យើងបានពង្រីកការបង្ហាញដោយបន្ថែមអេក្រង់ LCD AEK-LCD-DT028V1 ទីពីរ និងប្រើប្រាស់បណ្ណាល័យ LVGL ដើម្បីបង្កើតឧបករណ៍វាស់ល្បឿនដើម្បីវាស់តម្លៃម៉ាស៊ីន rpm ។
7.1 ធាតុក្រាហ្វិក LVGL ត្រូវបានប្រើប្រាស់
ដើម្បីអភិវឌ្ឍការបង្ហាញ AVAS អេក្រង់ពីរ យើងបានប្រើធាតុក្រាហ្វិក LVGL ខាងក្រោម៖
- រូបភាពដែលប្រើជាផ្ទៃខាងក្រោយ tachometer
- ធ្នូប្រើជាសូចនាករ tachometer
- ចលនាដែលធ្វើបច្ចុប្បន្នភាពតម្លៃធ្នូដោយយោងតាមម៉ាស៊ីន rpm
7.1.1 ធាតុក្រាហ្វិករូបភាព LVGL
ដើម្បីប្រើរូបភាពជាមួយបណ្ណាល័យ LVGL សូមបំប្លែងវាទៅជាអារេ C ដោយប្រើអ៊ីនធឺណិតឥតគិតថ្លៃ កម្មវិធីបម្លែងចំណាំ៖
ពេលបំប្លែងរូបភាពកុំភ្លេចធីកប្រអប់នៃទ្រង់ទ្រាយ Big-Endian។
នៅក្នុងការបង្ហាញ AVAS អេក្រង់ពីរ អារេ C ដែលតំណាងឱ្យរូបភាព tachometer ត្រូវបានដាក់ឈ្មោះថា Gauge ។ ធាតុក្រាហ្វិករូបភាពត្រូវបានប្ដូរតាមបំណងជា ដូចខាងក្រោម៖កន្លែងណា៖
- lv_img_declare ៖ ប្រើដើម្បីប្រកាសរូបភាពមួយដែលហៅថា Gauge ។
- lv_img_create៖ ត្រូវបានប្រើដើម្បីបង្កើតវត្ថុរូបភាព ហើយភ្ជាប់វាទៅអេក្រង់បច្ចុប្បន្ន។
- lv_img_set_src៖ នេះគឺជារូបភាពដែលទទួលបានពីកម្មវិធីបម្លែង LVGL ដែលបានបង្ហាញពីមុន (វាត្រូវបានណែនាំឱ្យប្រើទម្រង់ jpg)។
- lv_obj_align៖ ត្រូវបានប្រើដើម្បីតម្រឹមរូបភាពទៅកណ្តាលដោយមានអុហ្វសិតដែលបានផ្តល់ឱ្យ។
- lv_obj_set_size៖ ត្រូវបានប្រើដើម្បីកំណត់ទំហំរូបភាព។
ចំណាំ៖
សម្រាប់ព័ត៌មានលម្អិតអំពីរបៀបគ្រប់គ្រងរូបភាពជាមួយបណ្ណាល័យ LVGL សូមមើលឯកសារផ្លូវការ។
7.1.2 ធាតុក្រាហ្វិកធ្នូ LVGL
ធ្នូពហុពណ៌ត្រូវបានបង្កើតឡើង ដើម្បីបង្ហាញម៉ាស៊ីន rpms ភ្លាមៗ។ ធ្នូពហុពណ៌មានពីរពណ៌ជាប់គ្នា ក្រហម និងខៀវ រៀងគ្នា។កូដខាងក្រោមបង្ហាញពីរបៀបបង្កើត ធ្នូ៖
កន្លែងណា៖
- lv_arc_create៖ បង្កើតវត្ថុធ្នូ។
- lv_arc_set_rotation៖ កំណត់ការបង្វិលធ្នូ។
- lv_arc_set_bg_angles៖ កំណត់តម្លៃធ្នូអតិបរមា និងអប្បបរមាគិតជាដឺក្រេ។
- lv_arc_set_value៖ កំណត់តម្លៃដើមនៃធ្នូនៅសូន្យ។
- lv_obj_set_size៖ កំណត់ទំហំធ្នូ។
- lv_obj_remove_style៖ ដកទ្រនិចចុងធ្នូចេញ។
- lv_obj_clear_flag៖ កំណត់ធ្នូថាមិនអាចចុចបាន។
- lv_obj_align៖ តម្រឹមធ្នូទៅកណ្តាលដោយមានអុហ្វសិតដែលបានបញ្ជាក់។
7.1.3 ធាតុក្រាហ្វិកដែលទាក់ទងនឹងចលនា
មុខងារចលនាធ្នូជាក់លាក់មួយត្រូវបានបង្កើត និងបញ្ជូនទៅម៉ាស៊ីន LVGL ដើម្បីបង្ហាញការផ្លាស់ប្តូរ rpm ។ លេខកូដមុខងារគឺ ខាងក្រោម៖កន្លែងណា៖
- arc: គឺជាទ្រនិចទៅធាតុក្រាហ្វិកធ្នូបច្ចុប្បន្ន
- ការពន្យាពេល៖ គឺជាពេលវេលាពន្យាពេលមុនពេលចលនាចាប់ផ្តើម
- start: គឺជាទីតាំងធ្នូដំបូង
- ចុង៖ គឺជាទីតាំងធ្នូចុងក្រោយ
- ល្បឿន៖ គឺជាល្បឿនចលនាគិតជាឯកតា/វិនាទី។
ចំណាំ៖ សម្រាប់ព័ត៌មានលម្អិតអំពីមុខងារចលនាដែលបានប្រើ សូមមើលឯកសារ LVGL។ ដោយពិចារណាថាធ្នូពេញលេញមានធ្នូជាប់គ្នាពីរ យើងត្រូវគ្រប់គ្រងមុខងារចលនាឱ្យបានត្រឹមត្រូវ។ ចំពោះគោលបំណងនេះ ចូរយើងវិភាគសេណារីយ៉ូពីរផ្សេងគ្នា៖
- ករណី៖ ចលនាជាប់ពាក់ព័ន្ធនឹងធ្នូមួយ ក្នុងករណីសាមញ្ញនេះ យើងកំណត់ចលនាមួយទៅធ្នូ។
- ករណី៖ គំនូរជីវចលពាក់ព័ន្ធនឹងធ្នូពីរ ក្នុងករណីនេះ ចលនានៃធ្នូទីពីរចាប់ផ្តើមនៅចុងបញ្ចប់នៃចលនារបស់ទីមួយ។
មុខងារ LVGL ជាក់លាក់ (lv_anim_speed_to_time) គណនាពេលវេលាចលនា។ ពេលវេលាប្រតិបត្តិនេះត្រូវបានប្រើដើម្បីគណនាការពន្យាពេលនៃចលនាធ្នូទីពីរ។7.2 ការអនុវត្តស្នូលពីរ
នៅក្នុងការបង្ហាញ AVAS អេក្រង់ពីរ មុខងារបង្ហាញ និងការចាក់សំឡេងត្រូវបានប្រតិបត្តិក្នុងពេលដំណាលគ្នានៅក្នុងប្រព័ន្ធបង្កប់ក្នុងពេលវេលាជាក់ស្តែង។ ដើម្បីជម្នះការខាតបង់ដែលអាចកើតមាននៃការឆ្លើយតបរបស់ប្រព័ន្ធ យើងបានសម្រេចចិត្តប្រើស្នូលពីរផ្សេងគ្នា៖ មួយផ្តោតលើការបង្ហាញ និងមួយទៀតសម្រាប់ការចាក់អូឌីយ៉ូ។
ក្រុមប្រឹក្សាភិបាល AEK-MCU-C4MLIT1 ផ្ទុកនូវ microcontroller SPC58EC80E5 ជាមួយនឹងដំណើរការ dual core ដែលសមបំផុតសម្រាប់ករណីដែលបានពិពណ៌នាខាងលើ។
លម្អិត៖
- ស្នូលទី 2៖ វាគឺជាការចាប់ផ្តើមដំបូង វាចាប់ផ្តើមបណ្ណាល័យ ហើយបន្ទាប់មកប្រតិបត្តិកូដកម្មវិធី។
- ស្នូល 0៖ វាហៅមុខងារ aek_lcd_lvgl_refresh_screen() នៅក្នុងរង្វង់មេ ដើម្បីអាប់ដេតជាបន្តបន្ទាប់នូវការបង្ហាញ និងអានការបញ្ចូលការប៉ះ។
មុខងារ PIT និង aek_lcd_lvgl_refresh_screen() ត្រូវតែដាក់ក្នុងស្នូលដូចគ្នា។
ប្រវត្តិនៃការពិនិត្យឡើងវិញ
តារាងទី 1. ប្រវត្តិកែប្រែឯកសារ
កាលបរិច្ឆេទ | ការពិនិត្យឡើងវិញ | ការផ្លាស់ប្តូរ |
២៥-តុលា-២០០៧ | 1 | ការចេញផ្សាយដំបូង។ |
ការជូនដំណឹងសំខាន់ - អានដោយប្រុងប្រយ័ត្ន
STMicroelectronics NV និងក្រុមហ៊ុនបុត្រសម្ព័ន្ធរបស់ខ្លួន (“ST”) រក្សាសិទ្ធិដើម្បីធ្វើការផ្លាស់ប្តូរ ការកែតម្រូវ ការកែលម្អ ការកែប្រែ និងការកែលម្អចំពោះផលិតផល ST និង/ឬឯកសារនេះនៅពេលណាមួយដោយគ្មានការជូនដំណឹងជាមុន។ អ្នកទិញគួរតែទទួលបានព័ត៌មានពាក់ព័ន្ធចុងក្រោយបំផុតលើផលិតផល ST មុនពេលធ្វើការបញ្ជាទិញ។ ផលិតផល ST ត្រូវបានលក់ដោយអនុលោមតាមលក្ខខណ្ឌនៃការលក់របស់ ST នៅពេលទទួលស្គាល់ការបញ្ជាទិញ។ អ្នកទិញទទួលខុសត្រូវទាំងស្រុងចំពោះជម្រើស ការជ្រើសរើស និងការប្រើប្រាស់ផលិតផល ST ហើយ ST មិនទទួលខុសត្រូវចំពោះជំនួយកម្មវិធី ឬការរចនាផលិតផលរបស់អ្នកទិញឡើយ។
គ្មានអាជ្ញាប័ណ្ណ បង្ហាញ ឬបង្កប់ន័យចំពោះសិទ្ធិកម្មសិទ្ធិបញ្ញាណាមួយត្រូវបានផ្តល់ដោយ ST នៅទីនេះ។
ការលក់បន្តនៃផលិតផល ST ជាមួយនឹងបទប្បញ្ញត្តិខុសពីព័ត៌មានដែលមានចែងនៅទីនេះ នឹងត្រូវចាត់ទុកជាមោឃៈនូវការធានាណាមួយដែលផ្តល់ដោយ ST សម្រាប់ផលិតផលនោះ។
ST និងនិមិត្តសញ្ញា ST គឺជាពាណិជ្ជសញ្ញារបស់ ST ។ សម្រាប់ព័ត៌មានបន្ថែមអំពីពាណិជ្ជសញ្ញា ST សូមមើល www.st.com/trademarks. ឈ្មោះផលិតផល ឬសេវាកម្មផ្សេងទៀតទាំងអស់គឺជាកម្មសិទ្ធិរបស់ម្ចាស់រៀងៗខ្លួន។
ព័ត៌មាននៅក្នុងឯកសារនេះជំនួស និងជំនួសព័ត៌មានដែលបានផ្តល់ពីមុននៅក្នុងកំណែមុននៃឯកសារនេះ។ © 2023 STMicroelectronics - រក្សាសិទ្ធិគ្រប់យ៉ាង
UM3236 – Rev 1 – តុលា 2023
សម្រាប់ព័ត៌មានបន្ថែម សូមទាក់ទងផ្នែកលក់ STMicroelectronics ក្នុងតំបន់របស់អ្នក។
ឯកសារ/ធនធាន
![]() |
បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD [pdf] សៀវភៅណែនាំអ្នកប្រើប្រាស់ AEK-LCD-DT028V1, UM3236, UM3236 LVGL Libraries for LCD Display, LVGL Libraries for LCD Display, Libraries for LCD Display, LCD Display |