និមិត្តសញ្ញា STMicroelectronics បណ្ណាល័យ 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បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - ស្ថាបត្យកម្ម AEK-LCD-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 ដូចបង្ហាញក្នុងរូបភាពខាងក្រោម។បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - កម្មវិធីបញ្ជា LVGLDisprove ទទួលបន្ទុករៀបចំរូបភាពបណ្តោះអាសន្ន ហើយបញ្ជូនវាទៅស្រទាប់ខាងក្រោម ដើម្បីបង្ហាញវានៅលើ 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() ។បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - ការចាប់ផ្តើម draw_bufនៅក្នុងកូដខាងលើ ប៉ារ៉ាម៉ែត្រ DISP_HOR_RES និង DISP_VER_RES តំណាងឱ្យវិមាត្រ LCD ។
ចំណាំ៖
ទំហំសតិបណ្ដោះអាសន្នត្រូវតែប្ដូរតាមបំណងដោយអនុលោមតាមអង្គចងចាំដែលមានប្រព័ន្ធ។ មគ្គុទ្ទេសក៍ LVGL ផ្លូវការណែនាំអោយជ្រើសរើសទំហំផ្ទាំងគំនូរយ៉ាងហោចណាស់ 1/10 នៃទំហំអេក្រង់។ ប្រសិនបើសតិបណ្ដោះអាសន្នជាជម្រើសទីពីរត្រូវបានប្រើប្រាស់ LVGL អាចចូលទៅក្នុងសតិបណ្ដោះអាសន្នមួយ ខណៈដែលទិន្នន័យនៃសតិបណ្ដោះអាសន្នផ្សេងទៀតត្រូវបានផ្ញើទៅបង្ហាញក្នុងផ្ទៃខាងក្រោយ។បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - ការចាប់ផ្តើម draw_buf 1ប៉ារ៉ាម៉ែត្រផ្សេងទៀតនៃរចនាសម្ព័ន្ធគឺទំហំអេក្រង់ មុខងារពីរគឺ flush និង monitor_cb ដែលយើងនឹងវិភាគនៅពេលក្រោយ។ នៅពេលដែលបានបំពេញ រចនាសម្ព័ន្ធត្រូវតែត្រូវបានចុះឈ្មោះជាមួយនឹងមុខងារ lv_disp_drv_register() ដើម្បីកំណត់ការបង្ហាញសកម្ម។
3.1.2 IndevDriver
IndevDriver ត្រូវបានចាប់ផ្តើមដូចខាងក្រោម:បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - ការចាប់ផ្តើម draw_buf 2វាលដែលបានកំណត់សំខាន់គឺជាប្រភេទឧបករណ៍ដែលបានប្រើ និងមុខងារដើម្បីគ្រប់គ្រងវា។ ក្នុងករណីនេះផងដែរ រចនាសម្ព័ន្ធដែលបានចាប់ផ្តើមត្រូវតែចុះឈ្មោះដើម្បីធ្វើឱ្យឧបករណ៍ក្លាយជាសកម្ម។
3.2 ទឹកហូរ
មុខងារ flush ប្រើបណ្ណាល័យក្រាហ្វិកមូលដ្ឋាននៃសមាសភាគ AEK-LCD-DT028V1 ដើម្បីគូរនៅលើ LCD រូបភាពដែលមានវត្តមាននៅក្នុងសតិបណ្ដោះអាសន្នត្រូវបានចាប់ផ្តើមដោយយោងតាមកថាខណ្ឌមុន។បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - មុខងារ Flushគ្រោងនៃមុខងារ flush ត្រូវបានផ្តល់ដោយមុខងារ LVGL និងប្ដូរតាមបំណងសម្រាប់កម្មវិធីបញ្ជាអេក្រង់ LCD ដែលកំពុងប្រើប្រាស់ (ឧទាហរណ៍ aek_ili9341_drawPixel – pixel drawing)។ ប៉ារ៉ាម៉ែត្របញ្ចូលគឺ៖

  • ស្ងួត : ចង្អុលទៅ Disprove
  • area: buffer ដែលផ្ទុកតំបន់ជាក់លាក់ដែលត្រូវការធ្វើបច្ចុប្បន្នភាព
  • color: buffer ដែលមានពណ៌ដែលត្រូវបោះពុម្ព។

3.3 monitor_cb
មុខងារ monitor_cb ត្រូវបានកំណត់នៅក្នុងការណែនាំផ្លូវការរបស់ LVGL ហើយមិនតម្រូវឱ្យមានការប្ដូរតាមបំណងទេ។បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - មុខងារ monitor_cb3.4 my_input_read
មុខងារ my_input_read ទទួលបន្ទុកគ្រប់គ្រងការបញ្ចូលដែលមកពីអេក្រង់ LCD នៅកម្រិតខ្ពស់។
គ្រោងមុខងារត្រូវបានកំណត់ដោយបណ្ណាល័យ LVGL ។ ប៉ារ៉ាម៉ែត្របញ្ចូលគឺ៖

  • drv: ចង្អុលទៅកម្មវិធីបញ្ជាបញ្ចូលដែលបានចាប់ផ្ដើម
  • ទិន្នន័យ៖ មានកូអរដោនេ x,y ដែលបានបំប្លែងពីភីកសែលនៃចំណុចប៉ះ រូបភាពខាងក្រោមបង្ហាញពីការអនុវត្តមុខងារ my_input_read៖

បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - មុខងារអាន3.5 ធ្វើឱ្យអេក្រង់ស្រស់
មុខងារ aek_lcd_lvgl_refresh_screen ធ្វើបច្ចុប្បន្នភាពកម្មវិធីកំណត់ម៉ោងខាងក្នុង LVGL ។
ចំណាំ៖ មុខងារនេះត្រូវតែដាក់ឱ្យត្រឹមត្រូវនៅក្នុងកូដកម្មវិធី ដើម្បីបំពេញលក្ខខណ្ឌពេលវេលា LVGL ។បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - មុខងារអេក្រង់

ប្រព័ន្ធអេកូ 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. ជ្រើសរើសពុម្ពអក្សរដែលអ្នកចង់ប្រើ។ ពិចារណាថាពុម្ពអក្សរនីមួយៗត្រូវការអង្គចងចាំពន្លឺបន្ថែមសម្រាប់កូដកម្មវិធីដែលបានបង្កើត។បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - ការកំណត់រចនាសម្ព័ន្ធសមាសធាតុ RLA

របៀបបង្កើតគម្រោង 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បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - ការបន្ថែមសមាសធាតុជំហានទី 3. ចុចប៊ូតុង [ការបែងចែក] នៅក្នុងបង្អួចកំណត់រចនាសម្ព័ន្ធ AEK-LCD-LVGL ។ ប្រតិបត្តិការនេះផ្ទេរការកំណត់រចនាសម្ព័ន្ធ AEK-LCD-LVGL ទៅ AutoDevKit ។
ជំហានទី 4. ការបែងចែកបានបើកឧបករណ៍កំណត់ម៉ោង PIT ។ អ្នកអាចផ្ទៀងផ្ទាត់វានៅក្នុងសមាសភាគកម្មវិធីបញ្ជាកម្រិតទាប។បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - ការបន្ថែមសមាសធាតុជំហាន 5. បង្កើត និងបង្កើតកម្មវិធីដោយប្រើរូបតំណាងសមរម្យនៅក្នុងស្ទូឌីយោ AutoDevKit ។ បន្ទាប់មកថតគម្រោងត្រូវបានបញ្ចូលជាមួយថ្មី។ files រួមទាំង main.c. ថតសមាសភាគត្រូវបានបំពេញបន្ទាប់មកជាមួយ AEKLCD-DT028V1 និង
កម្មវិធីបញ្ជា AEK-LCD-LVGL ។
ជំហានទី 6. បើក manic file និងរួមបញ្ចូល AEK-LCD-DT028V1.h និង AEK_LCD_LVGL.h files.បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - main.c fileជំហានទី 7. នៅក្នុង manic នេះ។ fileបន្ទាប់ពីមុខងារ irqIsrEnable() បញ្ចូលមុខងារចាំបាច់ខាងក្រោម៖បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - មុខងារចាំបាច់ជំហានទី 8. នៅក្នុង main.c សូមចម្លង និងបិទភ្ជាប់អតីតample ពីបណ្ណាល័យ LVGL យកចេញពីមគ្គុទ្ទេសក៍ផ្លូវការ ហើយបញ្ចូលវាទៅក្នុង main()។បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - Exampលេពីជំហានទី 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។បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - Exampលេពីយើងបានពង្រីកការបង្ហាញដោយបន្ថែមអេក្រង់ LCD AEK-LCD-DT028V1 ទីពីរ និងប្រើប្រាស់បណ្ណាល័យ LVGL ដើម្បីបង្កើតឧបករណ៍វាស់ល្បឿនដើម្បីវាស់តម្លៃម៉ាស៊ីន rpm ។
7.1 ធាតុក្រាហ្វិក LVGL ត្រូវបានប្រើប្រាស់
ដើម្បីអភិវឌ្ឍការបង្ហាញ AVAS អេក្រង់ពីរ យើងបានប្រើធាតុក្រាហ្វិក LVGL ខាងក្រោម៖

  • រូបភាពដែលប្រើជាផ្ទៃខាងក្រោយ tachometer
  • ធ្នូប្រើជាសូចនាករ tachometer
  • ចលនា​ដែល​ធ្វើ​បច្ចុប្បន្នភាព​តម្លៃ​ធ្នូ​ដោយ​យោង​តាម​ម៉ាស៊ីន rpm

7.1.1 ធាតុក្រាហ្វិករូបភាព LVGL
ដើម្បីប្រើរូបភាពជាមួយបណ្ណាល័យ LVGL សូមបំប្លែងវាទៅជាអារេ C ដោយប្រើអ៊ីនធឺណិតឥតគិតថ្លៃ កម្មវិធីបម្លែងបណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - ធាតុក្រាហ្វិករូបភាព LVGLចំណាំ៖
ពេល​បំប្លែង​រូបភាព​កុំភ្លេច​ធីក​ប្រអប់​នៃ​ទ្រង់ទ្រាយ Big-Endian។
នៅក្នុងការបង្ហាញ AVAS អេក្រង់ពីរ អារេ C ដែលតំណាងឱ្យរូបភាព tachometer ត្រូវបានដាក់ឈ្មោះថា Gauge ។ ធាតុក្រាហ្វិករូបភាពត្រូវបានប្ដូរតាមបំណងជា ដូចខាងក្រោម៖បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - រូបភាពផ្ទៃខាងក្រោយ Tachometerកន្លែងណា៖

  • 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 ភ្លាមៗ។ ធ្នូពហុពណ៌មានពីរពណ៌ជាប់គ្នា ក្រហម និងខៀវ រៀងគ្នា។បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - AVAS tachometerកូដខាងក្រោមបង្ហាញពីរបៀបបង្កើត ធ្នូ៖បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - AVAS tachometerកន្លែងណា៖

  • 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 ។ លេខកូដមុខងារគឺ ខាងក្រោម៖បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - មុខងារចលនាកន្លែងណា៖

  • arc: គឺ​ជា​ទ្រនិច​ទៅ​ធាតុ​ក្រាហ្វិក​ធ្នូ​បច្ចុប្បន្ន
  •  ការពន្យាពេល៖ គឺជាពេលវេលាពន្យាពេលមុនពេលចលនាចាប់ផ្តើម
  • start: គឺជាទីតាំងធ្នូដំបូង
  •  ចុង៖ គឺជាទីតាំងធ្នូចុងក្រោយ
  • ល្បឿន៖ គឺជាល្បឿនចលនាគិតជាឯកតា/វិនាទី។

ចំណាំ៖ សម្រាប់ព័ត៌មានលម្អិតអំពីមុខងារចលនាដែលបានប្រើ សូមមើលឯកសារ LVGL។ ដោយពិចារណាថាធ្នូពេញលេញមានធ្នូជាប់គ្នាពីរ យើងត្រូវគ្រប់គ្រងមុខងារចលនាឱ្យបានត្រឹមត្រូវ។ ចំពោះគោលបំណងនេះ ចូរយើងវិភាគសេណារីយ៉ូពីរផ្សេងគ្នា៖

  1. ករណី៖ ចលនា​ជាប់​ពាក់ព័ន្ធ​នឹង​ធ្នូ​មួយ ក្នុង​ករណី​សាមញ្ញ​នេះ យើង​កំណត់​ចលនា​មួយ​ទៅ​ធ្នូ។បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - Arc animationq
  2. ករណី៖ គំនូរជីវចលពាក់ព័ន្ធនឹងធ្នូពីរ ក្នុងករណីនេះ ចលនានៃធ្នូទីពីរចាប់ផ្តើមនៅចុងបញ្ចប់នៃចលនារបស់ទីមួយ។បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - ចលនាធ្នូ

មុខងារ LVGL ជាក់លាក់ (lv_anim_speed_to_time) គណនាពេលវេលាចលនា។ ពេលវេលាប្រតិបត្តិនេះត្រូវបានប្រើដើម្បីគណនាការពន្យាពេលនៃចលនាធ្នូទីពីរ។បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - elay នៃធ្នូទីពីរ7.2 ការអនុវត្តស្នូលពីរ
នៅក្នុងការបង្ហាញ AVAS អេក្រង់ពីរ មុខងារបង្ហាញ និងការចាក់សំឡេងត្រូវបានប្រតិបត្តិក្នុងពេលដំណាលគ្នានៅក្នុងប្រព័ន្ធបង្កប់ក្នុងពេលវេលាជាក់ស្តែង។ ដើម្បីជម្នះការខាតបង់ដែលអាចកើតមាននៃការឆ្លើយតបរបស់ប្រព័ន្ធ យើងបានសម្រេចចិត្តប្រើស្នូលពីរផ្សេងគ្នា៖ មួយផ្តោតលើការបង្ហាញ និងមួយទៀតសម្រាប់ការចាក់អូឌីយ៉ូ។
ក្រុមប្រឹក្សាភិបាល AEK-MCU-C4MLIT1 ផ្ទុកនូវ microcontroller SPC58EC80E5 ជាមួយនឹងដំណើរការ dual core ដែលសមបំផុតសម្រាប់ករណីដែលបានពិពណ៌នាខាងលើ។
លម្អិត៖

  • ស្នូលទី 2៖ វាគឺជាការចាប់ផ្តើមដំបូង វាចាប់ផ្តើមបណ្ណាល័យ ហើយបន្ទាប់មកប្រតិបត្តិកូដកម្មវិធី។
  • ស្នូល 0៖ វាហៅមុខងារ aek_lcd_lvgl_refresh_screen() នៅក្នុងរង្វង់មេ ដើម្បីអាប់ដេតជាបន្តបន្ទាប់នូវការបង្ហាញ និងអានការបញ្ចូលការប៉ះ។

បណ្ណាល័យ STMicroelectronics UM3236 LVGL សម្រាប់អេក្រង់ LCD - ការចាប់ផ្តើមស្នូលមីក្រូកុងទ័រ SPC58EC80E5មុខងារ 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 - រក្សាសិទ្ធិគ្រប់យ៉ាង

និមិត្តសញ្ញា STMicroelectronicsUM3236 – 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

ឯកសារយោង

ទុកមតិយោបល់

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ *