ម៉ូឌុលអេក្រង់ LCD TFT 9341 អ៊ីញ IL2.4

ព័ត៌មានផលិតផល៖

ម៉ូឌុល LCD 2.4 អ៊ីង គឺជាម៉ូឌុលបង្ហាញ TFT ដែលមានកម្រិតភាពច្បាស់
នៃ 240 * 320. វាប្រើចំណុចប្រទាក់ SPI សម្រាប់ការទំនាក់ទំនងនិងមាន
ឧបករណ៍បញ្ជាខាងក្នុងដែលមានមុខងារជាមូលដ្ឋាន។ អេក្រង់ LCD អាចគូរបាន។
ចំណុច បន្ទាត់ រង្វង់ និងចតុកោណ ហើយអាចបង្ហាញភាសាអង់គ្លេស
ភាសាចិនក៏ដូចជារូបភាព។ ម៉ូឌុលភ្ជាប់មកជាមួយពេញលេញ
គាំទ្រការបង្ហាញ Raspberry Pi (បណ្ណាល័យ BCM2835, បណ្ណាល័យ WiringPi,
និង Python demos) ការបង្ហាញ STM32 និង Arduino demos ។

លក្ខណៈ​ពិសេស៖

  • វ៉ុលប្រតិបត្តិការtagអ៊ី: 3.3V/5V
  • ចំណុចប្រទាក់៖ SPI
  • ប្រភេទ LCD: TFT
  • ឧបករណ៍បញ្ជា: IL9341
  • គុណភាពបង្ហាញ៖ 240 (V) x 320 (H) RGB
  • ទំហំបង្ហាញ: 36.72Hx 48.96Vmm
  • ទំហំភីកសែល៖ 0.153Hx 0.153Vmm
  • វិមាត្រ: 70.5 x 43.3 (មម)

សេចក្តីណែនាំអំពីការប្រើប្រាស់ផលិតផល៖

ការតភ្ជាប់ផ្នែករឹង Raspberry Pi៖

សូមភ្ជាប់ LCD ទៅនឹង Raspberry Pi របស់អ្នកដោយប្រើខ្សែ 8PIN
យោងតាមតារាងខាងក្រោម៖

អេក្រង់ LCD វី.ស៊ី.ស៊ី GND ឌីន CLK CS DS RST BL
Raspberry Pi 3.3V GND ម៉ូសូអាយ អេសអិលខេ ២២៧ 25 27 18
ក្រុមប្រឹក្សាភិបាល Raspberry Pi 3.3V GND 19 23 24 22 13 12

អេក្រង់ LCD 2.4inch ប្រើ PH2.0 8PIN interface ដែលអាចជា
ភ្ជាប់ទៅ Raspberry Pi យោងតាមតារាងខាងលើ។ សូម
ភ្ជាប់យោងទៅតាមតារាងកំណត់ម្ជុល។ ពណ៌នៃ
ខ្សែភ្លើងក្នុងរូបភាពគឺសម្រាប់ជាឯកសារយោងតែប៉ុណ្ណោះ ហើយពណ៌ពិត
អាចប្រែប្រួល។

ការតភ្ជាប់ផ្នែករឹង STM32៖

អតីតampឡេបានផ្តល់គឺផ្អែកលើ STM32F103RBT6 ។ សូមភ្ជាប់
នេះបើយោងតាមម្ជុលពិតប្រាកដ។

អេក្រង់ LCD វី.ស៊ី.ស៊ី GND ឌីន CLK CS DC RST BL
STM32 3.3V GND PA7 PA5 PB6 PA8 PA9 PC7

យកក្រុមប្រឹក្សាអភិវឌ្ឍន៍ XNUCLEO-F103RB ដែលបង្កើតឡើងដោយរបស់យើង។
ក្រុមហ៊ុនជាអតីតampដូច្នេះ ការតភ្ជាប់មានដូចខាងក្រោម៖

ការតភ្ជាប់ផ្នែករឹង Arduino៖

ភ្ជាប់ LCD ទៅនឹង Arduino UNO យោងតាមម្ជុល
តារាងឆ្លើយឆ្លងខាងក្រោម៖

អេក្រង់ LCD វី.ស៊ី.ស៊ី GND ឌីន CLK CS DC RST BL
Arduino UNO 5V GND D11 D13 D10 D7 D8 D9

ធ្វើការជាមួយ Raspberry Pi៖

ដើម្បីបើកចំណុចប្រទាក់ SPI នៅលើ Raspberry Pi សូមអនុវត្តតាមទាំងនេះ
ជំហាន៖

  1. បើកស្ថានីយហើយប្រើពាក្យបញ្ជាដើម្បីបញ្ចូល
    ទំព័រកំណត់រចនាសម្ព័ន្ធ៖ sudo raspi-config
  2. ជ្រើសរើស Interfacing Options -> SPI -> Yes ដើម្បីបើក SPI
    ចំណុចប្រទាក់។
  3. ចាប់ផ្ដើម Raspberry Pi ឡើងវិញ៖ sudo ចាប់ផ្ដើមឡើងវិញ។
  4. សូមប្រាកដថា SPI មិនត្រូវបានកាន់កាប់ដោយឧបករណ៍ផ្សេងទៀតដោយ
    ពិនិត្យនៅកណ្តាល /boot/config.txt ។

ដើម្បីដំឡើងបណ្ណាល័យដែលត្រូវការនៅលើ Raspberry Pi៖

ដំឡើងបណ្ណាល័យ BCM2835៖

# បើកស្ថានីយ Raspberry Pi ហើយដំណើរការពាក្យបញ្ជាខាងក្រោម wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz tar zxvf bcm2835-1.71.tar.gz cd bcm2835-1.71/ sudo configure && sudo make && sudo make check && sudo make install # សម្រាប់ព័ត៌មានបន្ថែម សូមមើលផ្លូវការ webគេហទំព័រ៖ http://www.airspayce.com/mikem/bcm2835/

ដំឡើងបណ្ណាល័យ WiringPi៖

# បើកស្ថានីយ Raspberry Pi ហើយដំណើរការពាក្យបញ្ជាខាងក្រោម sudo apt-get install wiringpi # សម្រាប់ប្រព័ន្ធ Raspberry Pi បន្ទាប់ពីខែឧសភា ឆ្នាំ 2019 អ្នកប្រហែលជាត្រូវដំឡើងកំណែ៖ wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb gpio -v # ដំណើរការ gpio -v ហើយកំណែ 2.52 នឹងបង្ហាញឡើង។ ប្រសិនបើវាមិនលេចឡើងទេ ការដំឡើងគឺខុស។

សំណួរគេសួរញឹកញាប់៖

សំណួរ: តើអ្វីជាគុណភាពបង្ហាញនៃម៉ូឌុល LCD 2.4 អ៊ីញ?

A: គុណភាពបង្ហាញនៃម៉ូឌុល LCD 2.4 អ៊ីញគឺ 240 x 320 ។

សំណួរ៖ តើម៉ូឌុល LCD គាំទ្រចំណុចប្រទាក់អ្វីខ្លះ?

A: ម៉ូឌុល LCD គាំទ្រចំណុចប្រទាក់ SPI សម្រាប់
ការទំនាក់ទំនង។

សំណួរ៖ តើភាសាសរសេរកម្មវិធីអ្វីខ្លះដែលត្រូវបានគាំទ្រដោយម៉ូឌុល LCD
ការបង្ហាញ?

A: ការបង្ហាញម៉ូឌុល LCD គាំទ្រ Python, បណ្ណាល័យ BCM2835,
បណ្ណាល័យ WiringPi, STM32, និង Arduino ។

ម៉ូឌុល LCD 2.4 អ៊ីញ

ជាងview

ម៉ូឌុល LCD 2.4 អ៊ីញ

សេចក្តីផ្តើម

ក្នុងនាមជាម៉ូឌុលបង្ហាញ TFT 2.4 អ៊ីញជាមួយនឹងគុណភាពបង្ហាញ 240 * 320 ។

វាប្រើចំណុចប្រទាក់ SPI សម្រាប់ការទំនាក់ទំនង។ LCD មានឧបករណ៍បញ្ជាខាងក្នុងដែលមានមុខងារជាមូលដ្ឋាន ដែលអាចប្រើសម្រាប់គូរ

240 x 320

ចំណុច បន្ទាត់ រង្វង់ និងចតុកោណ ហើយអាចបង្ហាញភាសាអង់គ្លេស ចិន ក៏ដូចជារូបភាព។

យើងផ្តល់ជូននូវការបង្ហាញ Raspberry Pi ពេញលេញ (បណ្ណាល័យ BCM2835, បណ្ណាល័យ WiringPi,

និង Python demos) ការបង្ហាញ STM32 និង Arduino demos ។

ការបញ្ជាក់

វ៉ុលប្រតិបត្តិការtage: 3.3V/5V (នៅពេលប្រើការផ្គត់ផ្គង់ថាមពល 5V, logic voltage គឺ 5V; នៅពេលប្រើការផ្គត់ផ្គង់ថាមពល 3.3V តក្កវ៉ុលtage គឺ 3.3V) ចំណុចប្រទាក់៖ SPI ប្រភេទ LCD៖ ឧបករណ៍បញ្ជា TFT៖ IL9341 ដំណោះស្រាយ៖ 240(V) x 320(H)RGB
ទំហំបង្ហាញ៖ 36.72Hx 48.96Vmm ទំហំភីកសែល៖ 0.153Hx 0.153Vmm
វិមាត្រ: 70.5 x 43.3 (មម)

ការពិពណ៌នាអំពីចំណុចប្រទាក់ Raspberry Pi ការតភ្ជាប់ផ្នែករឹង

សូមភ្ជាប់ LCD ទៅនឹង Raspberry Pi របស់អ្នកដោយខ្សែ 8PIN យោងតាមតារាងខាងក្រោម ប្រសិនបើអ្នកប្រើបឋមកថាម្ជុល ឬចំណុចប្រទាក់ PH2.0 8PIN អ្នកត្រូវភ្ជាប់តាមតារាងខាងក្រោម។

ភ្ជាប់ទៅ Raspberry Pi
អេក្រង់ LCD
VCC GND DIN CLK
CS DS RST BL

BCM2835 3.3V GND MOSI SCLK CE0 25 27 18

Raspberry Pi

បន្ទះ 3.3V GND
៣៤ ៣៥ ២៣ ៨៦ ៧ ៤

អេក្រង់ 2.4inch LCD ប្រើ PH2.0 8PIN interface ដែល​អាច​ភ្ជាប់​ទៅ Raspberry Pi តាម​តារាង​ខាង​លើ៖ (សូម​ភ្ជាប់​តាម​តារាង​កំណត់​ pin។ ពណ៌​ខ្សែ​ក្នុង​រូបភាព​គឺ​សម្រាប់​តែ​ជា​ឯកសារ​យោង​ប៉ុណ្ណោះ ហើយ​ ពណ៌ពិតប្រាកដនឹងឈ្នះ។ )

ការតភ្ជាប់ផ្នែករឹង STM32

អតីតampដែលយើងផ្តល់ជូនគឺផ្អែកលើ STM32F103RBT6 ហើយវិធីសាស្ត្រតភ្ជាប់ដែលបានផ្តល់ក៏ជាម្ជុលដែលត្រូវគ្នានៃ STM32F103RBT6 ផងដែរ។ ប្រសិនបើអ្នកត្រូវការស្ទូងកម្មវិធីសូមភ្ជាប់តាមម្ជុលពិតប្រាកដ។

ការឆ្លើយឆ្លងម្ជុលភ្ជាប់ STM32F103ZET
អេក្រង់ LCD VCC GND DIN CLK
CS DC RST BL

STM32 3.3V GND PA7 PA5 PB6 PA8 PA9 PC7

យកក្រុមប្រឹក្សាអភិវឌ្ឍន៍ XNUCLEO-F103RB ដែលបង្កើតឡើងដោយក្រុមហ៊ុនរបស់យើងជាអតីតampដូច្នេះ ការតភ្ជាប់មានដូចខាងក្រោម៖

ការតភ្ជាប់ផ្នែករឹង Arduino
Arduino UNO ការ​ឆ្លើយឆ្លង​ម្ជុល​នៃ​ការ​តភ្ជាប់ LCD VCC GND DIN CLK CS DC RST BL
ដ្យាក្រាមតភ្ជាប់មានដូចខាងក្រោម (ចុចដើម្បីពង្រីក)៖

UNO 5V
GND D11 D13 D10 D7 D8 D9

ការពិពណ៌នាអំពី Hardware LCD និងឧបករណ៍បញ្ជា
អេក្រង់ LCD គាំទ្រទ្រង់ទ្រាយពណ៌បញ្ចូល 12 ប៊ីត 16 ប៊ីត និង 18 ប៊ីតក្នុងមួយភីកសែល ពោលគឺទម្រង់ពណ៌បី RGB444 RGB565 និង RGB666 ការបង្ហាញនេះប្រើទម្រង់ពណ៌ RGB565 ដែលជាទម្រង់ RGB ដែលប្រើជាទូទៅផងដែរ។ សម្រាប់ឧបករណ៍បញ្ជា LCD ភាគច្រើន របៀបទំនាក់ទំនងរបស់ឧបករណ៍បញ្ជាអាចត្រូវបានកំណត់រចនាសម្ព័ន្ធ ជាធម្មតាមានចំណុចប្រទាក់ប៉ារ៉ាឡែល 8080, SPI បីខ្សែ, SPI បួនខ្សែ និងវិធីទំនាក់ទំនងផ្សេងទៀត។ LCD នេះប្រើចំណុចប្រទាក់ទំនាក់ទំនង SPI បួនខ្សែ ដែលអាចរក្សាទុកច្រក GPIO យ៉ាងខ្លាំង ហើយល្បឿនទំនាក់ទំនងនឹងកាន់តែលឿន។ ពិធីសារទំនាក់ទំនង
ចំណាំ៖ ខុសពីពិធីការ SPI ប្រពៃណី ខ្សែទិន្នន័យពី slave ទៅមេត្រូវបានលាក់ ដោយសារឧបករណ៍មានតម្រូវការបង្ហាញប៉ុណ្ណោះ។ RESX: ម្ជុលកំណត់ឡើងវិញ វាគួរតែទាបនៅពេលផ្តល់ថាមពលដល់ម៉ូឌុល និងខ្ពស់ជាងនៅពេលផ្សេងទៀត; CSX៖ ជ្រើសរើស slave chip នៅពេល CS ទាប បន្ទះឈីបត្រូវបានបើក។ D/CX: data/command control pin, when DC = 0, write command, when DC = 1, write data SDA: data pin for transmission data RGB, it works as the MOSI pin of SPI interface; SCL ធ្វើការជាម្ជុល SCLK នៃចំណុចប្រទាក់ SPI ។ ការទំនាក់ទំនង SPI មានពេលវេលាផ្ទេរទិន្នន័យ ដែលត្រូវបានរួមបញ្ចូលគ្នាដោយ CPHA និង CPOL ។ CPOL កំណត់កម្រិតនៃនាឡិកាធ្វើសមកាលកម្មសៀរៀលនៅស្ថានភាពទំនេរ។ នៅពេល CPOL = 0 កម្រិតគឺទាប។ ទោះជាយ៉ាងណាក៏ដោយ CPOL មានឥទ្ធិពលតិចតួចចំពោះការបញ្ជូន។ CPHA កំណត់ថាតើទិន្នន័យត្រូវបានប្រមូលនៅគែមនាឡិកាទីមួយ ឬនៅគែមនាឡិកាទីពីរនៃនាឡិកាធ្វើសមកាលកម្មសៀរៀល។ នៅពេល CPHL = 0 ទិន្នន័យត្រូវបានប្រមូលនៅគែមនាឡិកាដំបូង។ មាន 4 របៀបទំនាក់ទំនង SPI ។ SPI0 ត្រូវបានគេប្រើជាទូទៅដែលក្នុងនោះ CPHL = 0, CPOL = 0 ។
ធ្វើការជាមួយ Raspberry Pi
បើកដំណើរការចំណុចប្រទាក់ SPI
PS: ប្រសិនបើអ្នកកំពុងប្រើប្រព័ន្ធនៃសាខា Bullseye អ្នកត្រូវផ្លាស់ប្តូរ "apt-get" ទៅ "apt" ប្រព័ន្ធនៃសាខា Bullseye គាំទ្រតែ Python3 ប៉ុណ្ណោះ។
បើកស្ថានីយ ប្រើពាក្យបញ្ជាដើម្បីចូលទំព័រកំណត់រចនាសម្ព័ន្ធ
sudo raspi-config ជ្រើសរើស Interfacing Options -> SPI -> Yes ដើម្បីបើក SPI interface

ចាប់ផ្ដើម Raspberry Pi ឡើងវិញ
sudo ចាប់ផ្ដើមឡើងវិញ
សូមប្រាកដថា SPI មិនត្រូវបានកាន់កាប់ដោយឧបករណ៍ផ្សេងទៀតទេ អ្នកអាចពិនិត្យមើលនៅពាក់កណ្តាល /boot/config.txt
ដំឡើងបណ្ណាល័យ
ដំឡើងបណ្ណាល័យ BCM2835
#បើកស្ថានីយ Raspberry Pi ហើយដំណើរការពាក្យបញ្ជាខាងក្រោម wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz tar zxvf bcm2835-1.71.tar.gz cd bcm2835-1.71/ sudo configure && sudo make && sudo make check && sudo make install # សម្រាប់ព័ត៌មានបន្ថែម សូមមើលផ្លូវការ webគេហទំព័រ៖ http://www.a irspayce.com/mikem/bcm2835/
ដំឡើងបណ្ណាល័យ WiringPi
#បើកស្ថានីយ Raspberry Pi ហើយដំណើរការពាក្យបញ្ជាខាងក្រោម sudo apt-get install wiringpi #សម្រាប់ប្រព័ន្ធ Raspberry Pi បន្ទាប់ពីខែឧសភា ឆ្នាំ 2019 (មុននេះ អ្នកប្រហែលជាមិនចាំបាច់ប្រតិបត្តិទេ) អ្នកប្រហែលជាត្រូវដំឡើងកំណែ៖ wget https://project -downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb gpio -v # ដំណើរការ gpio -v ហើយកំណែ 2.52 នឹងបង្ហាញ។ ប្រសិនបើវាមិនលេចឡើងទេ កម្ពស់ ins គឺខុស
ប្រព័ន្ធសាខា #Bullseye ប្រើពាក្យបញ្ជាខាងក្រោម៖ git clone https://github.com/WiringPi/WiringPi cd WiringPi ./build gpio -v # ដំណើរការ gpio -v ហើយកំណែ 2.60 នឹងបង្ហាញឡើង។ ប្រសិនបើវាមិនលេចឡើងវាមានន័យថាមានកំហុសក្នុងការដំឡើង
ដំឡើងបណ្ណាល័យ Python
#python2 sudo apt-get update sudo apt-get install python-pip sudo apt-get install python-pil sudo apt-get install python-numpy sudo pip ដំឡើង RPi.GPIO sudo pip ដំឡើង spidev #python3 sudo apt-get update sudo apt -get install python3-pip sudo apt-get install python3-pil sudo apt-get install python3-numpy sudo pip3 ដំឡើង RPi.GPIO sudo pip3 ដំឡើង spidev
ទាញយក Examples
បើកស្ថានីយ Raspberry Pi ហើយដំណើរការពាក្យបញ្ជាខាងក្រោម
sudo apt-get ដំឡើង unzip -y sudo wget https://www.waveshare.com/w/upload/8/8d/LCD_Module_RPI_code.zip sudo unzip ./LCD_Module_RPI_code.zip cd LCD_Module_RPI_code/RaspberryPi/
ដំណើរការកូដសាកល្បង
សូមចូលទៅកាន់ថត RaspberryPi (កូដសាកល្បង) ជាមុនសិន ហើយដំណើរការពាក្យបញ្ជានៅក្នុងស្ថានីយ
កូដ C
ចងក្រងលេខកូដសាកល្បងឡើងវិញ
cd c sudo make clean sudo make -j ៨
កម្មវិធីសាកល្បងនៃអេក្រង់ទាំងអស់អាចត្រូវបានហៅដោយផ្ទាល់ដោយបញ្ចូលទំហំដែលត្រូវគ្នា។
sudo ./ទំហំអេក្រង់មេ
អាស្រ័យលើ LCD ពាក្យបញ្ជាមួយក្នុងចំណោមពាក្យបញ្ជាខាងក្រោមគួរតែត្រូវបានបញ្ចូល៖
#0.96inch LCD Module sudo ./main 0.96 #1.14inch LCD Module sudo ./main 1.14 #1.28inch LCD Module sudo ./main 1.28 #1.3inch LCD Module sudo ./main 1.3 #1.47inch LCD .1.47 Module 1.54 in sudo #1.54inch LCD Module sudo ./main 1.8 #1.8inch LCD Module sudo ./main 2 #2inch LCD Module sudo ./main 2.4 #2.4inch LCD Module sudo ./main XNUMX
ពស់ថ្លាន់
បញ្ចូលថតកម្មវិធី python ហើយដំណើរការពាក្យបញ្ជា ls -l
ស៊ីឌី python/examples ls -l
កម្មវិធីសាកល្បងសម្រាប់អេក្រង់ទាំងអស់អាចជា viewed, តម្រៀបតាមទំហំ៖ 0inch96_LCD_test.py: កម្មវិធីធ្វើតេស្ត LCD 0.96inch 1inch14_LCD_test.py: កម្មវិធីតេស្ត LCD 1.14inch 1inch28_LCD_test.py: កម្មវិធីតេស្ត LCD 1.28inch 1inch3_LCD_test.py: 1.3inch1_LCD_test.py: 47inch1.47 LCD test_LCD program: 1inch54 LCD test.py កម្មវិធី 1.54inch1_LCD_test.py: កម្មវិធីសាកល្បង 8inchLCD 1.8inch2_LCD_test.py: កម្មវិធីធ្វើតេស្ត LCD 2inch 2inch_LCD_test.py: កម្មវិធីធ្វើតេស្ត LCD 4inch 2inch4_LCD_test.py: កម្មវិធីធ្វើតេស្ត LCD XNUMXinchXNUMX
គ្រាន់តែដំណើរការកម្មវិធីដែលត្រូវគ្នានឹងអេក្រង់ កម្មវិធីនេះគាំទ្រ python2/3
#python2 sudo python 0inch96_LCD_test.py sudo python 1inch14_LCD_test.py sudo python 1inch28_LCD_test.py sudo python 1inch3_LCD_test.py sudo python 1inch47_LCD_test.py sudo python 1inch54_LCD_test.py sudo python 1inch8_LCD_test.py sudo python 2inch2_LCD_test.py sudo python 4inch ធ្វើ python 3inch_LCD_test.py sudo python 3inch0_LCD_test.py # python96 sudo python3 1inch14_LCD_test.py sudo python3 1inch28_LCD_test.py sudo python3 1inch3_LCD_test.py sudo python3 1inch47_LCD_test.py sudo python3 1inch54_LCD_test.py sudo python3 1inch_LCD_8 ធ្វើ python3 2inch_LCD_test.py sudo python3 2inch4_LCD_test.py
ច្រក FBCP
PS: FBCP បច្ចុប្បន្នមិនឆបគ្នាជាមួយប្រព័ន្ធ Raspberry Pi 64-bit ទេ វាត្រូវបានណែនាំឱ្យប្រើប្រព័ន្ធ 32-bit។
Framebuffer ប្រើឧបករណ៍បញ្ចេញវីដេអូ ដើម្បីជំរុញឧបករណ៍បង្ហាញវីដេអូពីអង្គចងចាំបណ្តោះអាសន្នដែលមានទិន្នន័យស៊ុមពេញលេញ។ និយាយឱ្យសាមញ្ញ តំបន់អង្គចងចាំត្រូវបានប្រើដើម្បីរក្សាទុកមាតិកាបង្ហាញ ហើយមាតិកាបង្ហាញអាចត្រូវបានផ្លាស់ប្តូរដោយការផ្លាស់ប្តូរទិន្នន័យនៅក្នុងអង្គចងចាំ។ មានគម្រោងប្រភពបើកចំហនៅលើ github: fbcp-ili9341 ។ បើប្រៀបធៀបជាមួយគម្រោង fbcp ផ្សេងទៀត គម្រោងនេះប្រើការធ្វើឱ្យស្រស់ជាផ្នែក និង DMA ដើម្បីសម្រេចបាននូវល្បឿនរហូតដល់ 60fps
ទាញយក Drivers
sudo apt-get install cmake -y cd ~ wget https://www.waveshare.com/w/upload/1/18/Waveshare_fbcp.zip unzip Waveshare_fbcp.zip cd Waveshare_fbcp/ sudo chmod +x ./shell/*
វិធីទី ១៖ ប្រើស្គ្រីប (បានណែនាំ)
នៅទីនេះ​យើង​បាន​សរសេរ​ស្គ្រីប​ជាច្រើន​ដែល​អនុញ្ញាត​ឱ្យ​អ្នក​ប្រើ​ប្រើ​ fbcp ​បាន​យ៉ាង​ឆាប់​រហ័ស​ ហើយ​រត់​ពាក្យ​បញ្ជា​ដែល​ត្រូវ​គ្នា​ទៅ​តាម​អេក្រង់​ផ្ទាល់​របស់​ពួកគេ​ ប្រសិនបើអ្នក​ប្រើ​ស្គ្រីប​ហើយ​មិន​ចាំបាច់​កែប្រែ​វា​ទេ​ អ្នក​អាច​មិន​អើពើ​នឹង​វិធី​ទីពីរ​ខាងក្រោម។ ចំណាំ៖ ស្គ្រីបនឹងជំនួស /boot/config.txt និង /etc/rc.local ដែលត្រូវគ្នា ហើយចាប់ផ្តើមឡើងវិញ ប្រសិនបើអ្នកប្រើត្រូវការ សូមធ្វើការបម្រុងទុកដែលពាក់ព័ន្ធ។ files ជាមុន។
#0.96inch LCD Module sudo ./shell/waveshare-0inch96 #1.14inch LCD Module sudo ./shell/waveshare-1inch14 #1.3inch LCD Module sudo ./shell/waveshare-1inch3 #1.44inch LCD Module sudo ./shell/waveshare -1inch44 #1.54inch LCD Module sudo ./shell/waveshare-1inch54 #1.8inch LCD Module sudo ./shell/waveshare-1inch8 #2inch LCD Module sudo ./shell/waveshare-2inch #2.4inch LCD Module sudo ./shell/ waveshare-2inch4
វិធីសាស្រ្តទី 2: ការកំណត់រចនាសម្ព័ន្ធដោយដៃ
ការកំណត់រចនាសម្ព័ន្ធបរិស្ថាន
vc4-kms-v3d របស់ Raspberry Pi នឹងធ្វើឱ្យ fbcp បរាជ័យ ដូច្នេះយើងត្រូវបិទ vc4-kms-v3d មុនពេលដំឡើងវានៅក្នុង fbcp។
sudo nano /boot/config.txt
គ្រាន់តែរារាំងសេចក្តីថ្លែងការណ៍ដែលត្រូវគ្នានឹងរូបភាពខាងក្រោម។
បន្ទាប់មកការចាប់ផ្ដើមឡើងវិញគឺត្រូវបានទាមទារ។
sudo ចាប់ផ្ដើមឡើងវិញ
ចងក្រងនិងដំណើរការ
mkdir build cd build cmake [ជម្រើស] .. sudo make -j sudo ./fbcp
ជំនួសវាដោយខ្លួនអ្នកយោងទៅតាមម៉ូឌុល LCD ដែលអ្នកប្រើខាងលើ cmake [ជម្រើស] ..
#0.96inch LCD Module sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_0INCH96_LCD=ON -DBACKLIG HT_CONTROL=ON -DSTATISTICS=0 .. #1.14inch LCD Module sudo cmake -DSPI_INCH20_LCD=ON -DBACKLIG HT_CONTROL=ON -DSTATISTICS=1 .. #14inch LCD Module sudo cmake -DSPI_BUS_CLOCK_0LCDWA _CONTROL=ON -DSTATISTICS=1.3 .. #20inch LCD Module sudo cmake -DSPI_BUS_CLOCK_DIVISOR=1 -DWAVESHARE_3INCH0_LCD=ON -DBACKLIGH T_CONTROL=ON -DSTATISTICS=1.54.. #20inch LCD Module sudo cmake -DSPI_BUS_CLOCK_1LOCK_DIVISOR=54DBSHARE_DIVISOR CONTROL=ON -DSTATISTICS =0 .. #1.8inch LCD Module sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH8_LCD=ON -DBACKLIGH T_CONTROL=ON -DSTATISTICS=0.. #2inch LCD Module sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20DLACK_DIVISOR=2 បើក - DSTATISTICS=0 .. #2.4inch LCD Module sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_2INCH4_LCD=ON -DBACKLIGH T_CONTROL=ON -DSTATISTICS=0 ..
រៀបចំដើម្បីចាប់ផ្តើមដោយស្វ័យប្រវត្តិ
sudo cp ~/Waveshare_fbcp/buil d/fbcp /usr/local/bin/fbcp sudo nano /etc/rc.local
បន្ថែម fbcp& មុនពេលចេញលេខ 0។ ចំណាំថាអ្នកត្រូវតែបន្ថែម “&” ដើម្បីដំណើរការក្នុងផ្ទៃខាងក្រោយ បើមិនដូច្នេះទេប្រព័ន្ធប្រហែលជាមិនអាចចាប់ផ្តើមបានទេ។
កំណត់គុណភាពបង្ហាញ
កំណត់ទំហំបង្ហាញចំណុចប្រទាក់អ្នកប្រើនៅក្នុង /boot/config.txt file.
sudo nano /boot/config.txt
បន្ទាប់មកបន្ថែមបន្ទាត់ខាងក្រោមនៅចុងបញ្ចប់នៃ config.txt ។
hdmi_force_hotplug=1 hdmi_cvt=[ជម្រើស] hdmi_group=2 hdmi_mode=1 hdmi_mode=87 display_rotate=0
ជំនួស hdmi_cvt=[options] ខាងលើដោយយោងតាម ​​LCD Module ដែលអ្នកកំពុងប្រើ។
#ម៉ូឌុល LCD 2.4inch និង 2inch LCD Module hdmi_cvt=640 480 60 1 0 0 0
#1.8inch LCD Module hdmi_cvt=400 300 60 1 0 0 0
#1.3inch LCD Module & 1.54inch LCD Module hdmi_cvt=300 300 60 1 0 0 0
#1.14inch LCD Module hdmi_cvt=300 170 60 1 0 0 0
#0.96inch LCD Module hdmi_cvt=300 150 60 1 0 0 0
ហើយបន្ទាប់មកចាប់ផ្ដើមប្រព័ន្ធឡើងវិញ
sudo ចាប់ផ្ដើមឡើងវិញ
បន្ទាប់ពីចាប់ផ្តើមប្រព័ន្ធឡើងវិញ ចំណុចប្រទាក់អ្នកប្រើ Raspberry Pi OS នឹងត្រូវបានបង្ហាញ។

ការពិពណ៌នា API
ស៊េរី RaspberryPi អាចចែករំលែកកម្មវិធីមួយឈុត ព្រោះវាសុទ្ធតែជាប្រព័ន្ធបង្កប់ ហើយភាពឆបគ្នាគឺខ្លាំង។ កម្មវិធីនេះត្រូវបានបែងចែកទៅជាចំណុចប្រទាក់ផ្នែករឹងស្រទាប់ខាងក្រោម កម្មវិធីបញ្ជាអេក្រង់ LCD ស្រទាប់កណ្តាល និងកម្មវិធីស្រទាប់ខាងលើ។
C
ចំណុចប្រទាក់ផ្នែករឹង
យើងបានអនុវត្តការបំប្លែងកម្រិតទាប ប្រសិនបើអ្នកត្រូវការដឹងពីការអនុវត្តផ្ទៃក្នុងអាចចូលទៅកាន់ថតដែលត្រូវគ្នាដើម្បីពិនិត្យមើល ដោយហេតុផលដែលវេទិកាផ្នែករឹង និងការអនុវត្តផ្ទៃក្នុងខុសគ្នា។ អ្នកអាចបើក DEV_Config.c.h) ដើម្បីមើលនិយមន័យ ដែលនៅក្នុងថត RaspberryPiclibConfig ។
1. មានវិធីបីយ៉ាងសម្រាប់ C ដើម្បីជំរុញ៖ បណ្ណាល័យ BCM2835 បណ្ណាល័យ WiringPi និងបណ្ណាល័យ Dev រៀងគ្នា 2. យើងប្រើបណ្ណាល័យ Dev តាមលំនាំដើម។ ប្រសិនបើអ្នកត្រូវការផ្លាស់ប្តូរទៅបណ្ណាល័យ BCM2835 ឬ Wi ringPi សូមបើក RaspberryPicMakefile ហើយកែប្រែបន្ទាត់ ១៣-១ ៥ ដូចតទៅ៖

ប្រភេទទិន្នន័យ៖

#define UBYTE #define UWORD #define UDOUBLE

uint8_t uint16_t uint32_t

ការចាប់ផ្តើមម៉ូឌុល និងដំណើរការចេញ។
ចាត់ទុកជាមោឃៈ DEV_Module_Init (ចាត់ទុកជាមោឃៈ); ទុកជាមោឃៈ DEV_Module_Exit (ចាត់ទុកជាមោឃៈ); ចំណាំ៖
នេះគឺជាដំណើរការ GPIO មួយចំនួនមុន និងក្រោយពេលប្រើអេក្រង់ LCD។

GPIO អាននិងសរសេរ៖
ទុកជាមោឃៈ DEV_Digital_Write(UWORD Pin, UBYTE តម្លៃ); UBYTE DEV_Digital_Read(UWORD Pin);

SPI សរសេរទិន្នន័យ៖
ទុកជាមោឃៈ DEV_SPI_WriteByte (តម្លៃ UBYTE);

កម្មវិធីខាងលើ
ប្រសិនបើអ្នកត្រូវការគូររូបភាព ឬបង្ហាញអក្សរចិន និងអង់គ្លេស យើងផ្តល់មុខងារជាមូលដ្ឋានមួយចំនួននៅទីនេះអំពីដំណើរការក្រាហ្វិកមួយចំនួននៅក្នុងថត RaspberryPiclibGUIGUI_Paint.c.c.h។

ពុម្ពអក្សរអាចរកបាននៅក្នុងថត RaspberryPiclibFonts ។

លក្ខណៈសម្បត្តិរូបភាពថ្មី៖ បង្កើតសតិបណ្ដោះអាសន្នរូបភាពថ្មី លក្ខណសម្បត្តិនេះរួមបញ្ចូលឈ្មោះបណ្ដោះអាសន្នរូបភាព ទទឹង កម្ពស់ មុំត្រឡប់ និងពណ៌។
void Paint_NewImage(UBYTE *image, UWORD Width, UWORD Height, UWORD Rotate, UWORD Color) ប៉ារ៉ាម៉ែត្រ៖
រូបភាព៖ ឈ្មោះ​នៃ​សតិបណ្ដោះ​អាសន្ន​រូបភាព ដែល​ពិត​ជា​ចង្អុល​ទៅ​កាន់​អាសយដ្ឋាន​ដំបូង​នៃ​សតិបណ្ដោះ​អាសន្ន​រូបភាព។
ទទឹង៖ រូបភាព សតិបណ្ដោះអាសន្ន ទទឹង; កម្ពស់៖ កម្ពស់នៃសតិបណ្ដោះអាសន្នរូបភាព; បង្វិល៖ បង្ហាញមុំបង្វិលនៃរូបភាព ពណ៌៖ ពណ៌ដំបូងនៃរូបភាព;
ជ្រើសរើសរូបភាពបណ្ដោះអាសន្ន៖ គោលបំណងនៃការជ្រើសរើសគឺអ្នកអាចបង្កើតគុណលក្ខណៈរូបភាពច្រើន អាចមានសតិបណ្ដោះអាសន្នរូបភាពច្រើន អ្នកអាចជ្រើសរើសរូបភាពនីមួយៗដែលអ្នកបង្កើត។
មោឃៈ Paint_SelectImage(UBYTE *image) ប៉ារ៉ាម៉ែត្រ៖
រូបភាព៖ ឈ្មោះ​នៃ​សតិបណ្ដោះ​អាសន្ន​រូបភាព ដែល​ពិត​ជា​ចង្អុល​ទៅ​កាន់​អាសយដ្ឋាន​ដំបូង​នៃ​សតិបណ្ដោះ​អាសន្ន​រូបភាព។
ការបង្វិលរូបភាព៖ កំណត់មុំបង្វិលនៃរូបភាពដែលបានជ្រើសរើស និយមបន្ទាប់ពី Paint_SelectImage() អ្នកអាចជ្រើសរើសបង្វិល 0, 90, 180, 270។

មោឃៈ Paint_SetRotate(UWORD Rotate) ប៉ារ៉ាម៉ែត្រ៖
បង្វិល៖ ROTATE_0, ROTATE_90, ROTATE_180, និង ROTATE_270 ត្រូវគ្នាទៅនឹង 0, 90, 180, និង 270 ដឺក្រេ។

ការបត់កញ្ចក់រូបភាព៖ កំណត់ការបត់កញ្ចក់នៃរូបភាពដែលបានជ្រើសរើស។ អ្នកអាចជ្រើសរើសគ្មានកញ្ចក់ កញ្ចក់ផ្តេក កញ្ចក់បញ្ឈរ ឬកញ្ចក់កណ្តាលរូបភាព។
មោឃៈ Paint_SetMirroring(កញ្ចក់ UBYTE) ប៉ារ៉ាម៉ែត្រ៖
កញ្ចក់៖ បង្ហាញពីរបៀបឆ្លុះរូបភាព។ MIRROR_NONE, MIRROR_HO RIZONTAL, MIRROR_VERTICAL, MIRROR_ORIGIN ត្រូវ​នឹង​គ្មាន​កញ្ចក់ កញ្ចក់ផ្តេក កញ្ចក់​បញ្ឈរ និង​កញ្ចក់​កណ្តាល​រូបភាព​រៀងគ្នា។

កំណត់ចំណុចនៃទីតាំងបង្ហាញ និងពណ៌នៅក្នុងសតិបណ្ដោះអាសន្ន៖ នេះគឺជាមុខងារ GUI ស្នូល ចំណុចដំណើរការបង្ហាញទីតាំង និងពណ៌នៅក្នុងសតិបណ្ដោះអាសន្ន។
មោឃៈ Paint_SetPixel(UWORD Xpoint, UWORD Ypoint, UWORD Color) ប៉ារ៉ាម៉ែត្រ៖
Xpoint៖ ទីតាំង X នៃចំណុចមួយនៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ចំណុច Y ចំណុច៖ ទីតាំង Y នៃចំណុចមួយនៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ពណ៌៖ បង្ហាញពីពណ៌នៃចំនុច

ពណ៌បំពេញសតិបណ្ដោះអាសន្នរូបភាព៖ បំពេញសតិបណ្ដោះអាសន្នរូបភាពដោយពណ៌ ដែលជាធម្មតាប្រើដើម្បីបញ្ចេញពន្លឺអេក្រង់ទៅជាទទេ។
void Paint_Clear(UWORD Color) ប៉ារ៉ាម៉ែត្រ៖
ពណ៌៖ បំពេញពណ៌

ពណ៌បំពេញនៃបង្អួចជាក់លាក់មួយនៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព៖ ផ្នែកសតិបណ្ដោះអាសន្នរូបភាពនៃបង្អួចដែលពោរពេញដោយពណ៌ជាក់លាក់មួយ ជាធម្មតាត្រូវបានប្រើដើម្បីធ្វើឱ្យអេក្រង់ថ្មីទៅជាទទេ ជាញឹកញាប់ត្រូវបានប្រើសម្រាប់ការបង្ហាញពេលវេលា ធ្វើឱ្យស្រស់នៅវិនាទីចុងក្រោយនៃអេក្រង់។
void Paint_ClearWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yen d, UWORD Color) ប៉ារ៉ាម៉ែត្រ៖
Xstart: កូអរដោនេ x-start នៃ window Ystart: កូអរដោណេចាប់ផ្តើម y នៃ window Xend: កូអរដោណេ x-end នៃ window Yend: កូអរដោណេ y-end នៃ window Color: បំពេញ Color

គូរចំណុច៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព គូសចំណុចនៅលើ (Xpoint, Ypoint) អ្នកអាចជ្រើសរើសពណ៌ ទំហំចំណុច រចនាប័ទ្មនៃចំណុច។

ទុកជាមោឃៈ Paint_DrawPoint(UWORD Xpoint, UWORD Ypoint, UWORD Color, DOT_PIXEL ធ្វើ

t_Pixel, DOT_STYLE Dot_Style)

ប៉ារ៉ាម៉ែត្រ៖

Xpoint៖ បង្ហាញពីកូអរដោនេ X នៃចំណុចមួយ។

ចំណុច Y៖ បង្ហាញពីកូអរដោនេ Y នៃចំណុចមួយ។

ពណ៌៖ បំពេញពណ៌

Dot_Pixel៖ ទំហំនៃចំនុច ការបង្ហាញបង្ហាញទំហំ 8 ចំនុច ខ

y លំនាំដើម។

typedef enum {

DOT_PIXEL_1X1 = 1, // 1 x 1

DOT_PIXEL_2X2 ,

// 2 X 2

DOT_PIXEL_3X3 ,

// 3 X 3

DOT_PIXEL_4X4 ,

// 4 X 4

DOT_PIXEL_5X5 ,

// 5 X 5

DOT_PIXEL_6X6 ,

// 6 X 6

DOT_PIXEL_7X7 ,

// 7 X 7

DOT_PIXEL_8X8 ,

// 8 X 8

} DOT_PIXEL;

Dot_Style៖ ទំហំនៃចំនុចដែលពង្រីកពីកណ្តាលនៃ

ចំណុច ឬពីជ្រុងខាងឆ្វេងខាងក្រោមនៃចំណុចទៅខាងស្តាំ និងឡើងលើ។

typedef enum {

DOT_FILL_AROUND = 1,

DOT_FILL_RIGHTUP,

} DOT_STYLE;

គូរបន្ទាត់៖ នៅក្នុងបណ្តុំរូបភាព គូរបន្ទាត់ពី (Xstart, Ystart) ទៅ (Xend, Yend) អ្នកអាចជ្រើសរើសពណ៌ ទទឹង និងរចនាប័ទ្មនៃបន្ទាត់។

មោឃៈ Paint_DrawLine(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UW

ORD Color, LINE_STYLE Line_Style, LINE_STYLE Line_Style)

ប៉ារ៉ាម៉ែត្រ៖

Xstart៖ កូអរដោនេ x-start នៃបន្ទាត់

Ystart៖ កូអរដោណេចាប់ផ្តើម y នៃបន្ទាត់មួយ។

Xend៖ កូអរដោនេ x-end នៃបន្ទាត់

Yend៖ កូអរដោនេ y-end នៃបន្ទាត់មួយ។

ពណ៌៖ បំពេញពណ៌

Line_width៖ ទទឹងនៃបន្ទាត់ ការបង្ហាញបង្ហាញ 8 ទំហំ wi

dth តាមលំនាំដើម។

typedef enum {

DOT_PIXEL_1X1 = 1, // 1 x 1

DOT_PIXEL_2X2 ,

// 2 X 2

DOT_PIXEL_3X3 ,

// 3 X 3

DOT_PIXEL_4X4 ,

// 4 X 4

DOT_PIXEL_5X5 ,

// 5 X 5

DOT_PIXEL_6X6 ,

// 6 X 6

DOT_PIXEL_7X7 ,

// 7 X 7

DOT_PIXEL_8X8 ,

// 8 X 8

} DOT_PIXEL;

Line_Style៖ រចនាប័ទ្មបន្ទាត់។ ជ្រើសរើសថាតើបន្ទាត់ត្រូវបានភ្ជាប់ជា

ផ្លូវត្រង់ឬដាច់។

typedef enum {

LINE_STYLE_SOLID = 0,

LINE_STYLE_DOTTED,

} LINE_STYLE;

គូរចតុកោណកែង៖ នៅក្នុងរូបភាព buffer គូរចតុកោណកែងពី (Xstart, Ystart) ទៅ (Xend, Yend) អ្នកអាចជ្រើសរើសពណ៌ ទទឹងនៃបន្ទាត់ ថាតើត្រូវបំពេញផ្នែកខាងក្នុងនៃចតុកោណ។

void Paint_DrawRectangle(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yen

d, UWORD Color, DOT_PIXEL Line_width, DRAW_FILL Draw_Fill)

ប៉ារ៉ាម៉ែត្រ៖

Xstart៖ កូអរដោណេ X ចាប់ផ្តើមនៃចតុកោណកែង

Ystart៖ កូអរដោណេ Y ចាប់ផ្តើមនៃចតុកោណកែង

Xend៖ កូអរដោនេ x-end នៃ​ចតុកោណកែង

Yend៖ កូអរដោនេ y-end នៃ​ចតុកោណកែង

ពណ៌៖ បំពេញពណ៌

Line_width៖ ទទឹង​បួន​ជ្រុង​នៃ​ចតុកោណកែង។ និងដឺ

mo ផ្តល់ទំហំទទឹង 8 តាមលំនាំដើម។

typedef enum {

DOT_PIXEL_1X1 = 1,

// 1 x 1

DOT_PIXEL_2X2 ,

// 2 X 2

DOT_PIXEL_3X3 ,

// 3 X 3

DOT_PIXEL_4X4 ,

// 4 X 4

DOT_PIXEL_5X5 ,

// 5 X 5

DOT_PIXEL_6X6 ,

// 6 X 6

DOT_PIXEL_7X7 ,

// 7 X 7

DOT_PIXEL_8X8 ,

// 8 X 8

} DOT_PIXEL;

Draw_Fill៖ បំពេញ ថាតើត្រូវបំពេញផ្នែកខាងក្នុងនៃចតុកោណ

typedef enum {

DRAW_FILL_EMPTY = 0,

DRAW_FILL_FULL,

} DRAW_FILL;

គូររង្វង់៖ នៅក្នុងបណ្តុំរូបភាព គូសរង្វង់កាំជាមួយ (X_Center Y_Center) ជាកណ្តាល។ អ្នកអាចជ្រើសរើសពណ៌ ទទឹងនៃបន្ទាត់ និងថាតើត្រូវបំពេញផ្នែកខាងក្នុងនៃរង្វង់។

មោឃៈ Paint_DrawCircle(UWORD X_Center, UWORD Y_Center, UWORD Radius, UWORD

ពណ៌ DOT_PIXEL Line_width, DRAW_FILL Draw_Fill)

ប៉ារ៉ាម៉ែត្រ៖

X_Center៖ x-coordinate នៃកណ្តាលរង្វង់

Y_Center: y-coordinate នៃកណ្តាលរង្វង់

កាំ៖ បង្ហាញពីកាំនៃរង្វង់

ពណ៌៖ បំពេញពណ៌

Line_width៖ ទទឹង​នៃ​ធ្នូ​ដែល​មាន​លំនាំដើម​គឺ 8 width

typedef enum {

DOT_PIXEL_1X1 = 1,

// 1 x 1

DOT_PIXEL_2X2 ,

// 2 X 2

DOT_PIXEL_3X3 ,

// 3 X 3

DOT_PIXEL_4X4 ,

// 4 X 4

DOT_PIXEL_5X5 ,

// 5 X 5

DOT_PIXEL_6X6 ,

// 6 X 6

DOT_PIXEL_7X7 ,

// 7 X 7

DOT_PIXEL_8X8 ,

// 8 X 8

} DOT_PIXEL;

Draw_Fill៖ បំពេញ ថាតើត្រូវបំពេញខាងក្នុងរង្វង់

typedef enum {

DRAW_FILL_EMPTY = 0,

DRAW_FILL_FULL,

} DRAW_FILL;

សរសេរតួអក្សរ Ascii៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរ
តួអក្សរ Ascii អ្នកអាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ
ពណ៌ផ្ទៃខាងក្រោយ។
ទុកជាមោឃៈ Paint_DrawChar(UWORD Xstart, UWORD Ystart, const char Ascii_Char, sFO NT* Font, UWORD Color_Foreground, UWORD Color_Background) ប៉ារ៉ាម៉ែត្រ៖
Xstart: x-coordinate នៃ vertex ខាងឆ្វេងនៃតួអក្សរ Ystart: Y-coordinate នៃ vertex ខាងឆ្វេងនៃ character Ascii_Char: បង្ហាញអក្សរ Ascii character: Ascii visual character library នៅក្នុង Fonts folder ដែល demo ផ្តល់នូវ Fonts ខាងក្រោម៖
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: ពណ៌ពុម្ពអក្សរ Color_Background: បង្ហាញពណ៌ផ្ទៃខាងក្រោយ

សរសេរខ្សែអក្សរអង់គ្លេស៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរ a
ខ្សែអក្សរអង់គ្លេស អ្នកអាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពុម្ពអក្សរ
ពណ៌ផ្ទៃខាងមុខ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
void Paint_DrawString_EN(UWORD Xstart, UWORD Ystart, const char * pString, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background) ប៉ារ៉ាម៉ែត្រ៖
Xstart: x-coordinate នៃ vertex ខាងឆ្វេងនៃតួអក្សរមួយ Ystart: កូអរដោនេ Y នៃ font vertex vertex PSTring: string, string គឺជាទ្រនិចពុម្ពអក្សរ៖ Ascii visual character library នៅក្នុង Fonts folder ការបង្ហាញបង្ហាញនូវ Fonts ខាងក្រោម៖
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: ពណ៌ពុម្ពអក្សរ Color_Background: បង្ហាញពណ៌ផ្ទៃខាងក្រោយ

សរសេរអក្សរចិន៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរអក្សរចិនមួយខ្សែ អ្នកអាចជ្រើសរើសពុម្ពអក្សរ ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ និងពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរនៃការអ៊ិនកូដ GB2312។
ទុកជាមោឃៈ Paint_DrawString_CN(UWORD Xstart, UWORD Ystart, const char * pString, cFONT* font, UWORD Color_Foreground, UWORD Color_Background) ប៉ារ៉ាម៉ែត្រ៖
Xstart: x-coordinate នៃ vertex ខាងឆ្វេងនៃតួអក្សរមួយ Ystart: កូអរដោនេ Y នៃ font vertex vertex PSTring: string, string is a pointer Font: GB2312 encoding character library font, in the Fonts folder the demo ផ្តល់នូវ Fonts ខាងក្រោម៖
Font12CN: ពុម្ពអក្សរ ASCII 11*21, ពុម្ពអក្សរចិន 16*21 Font24CN: ASCII font24 *41, ពុម្ពអក្សរចិន 32*41 Color_Foreground: ពណ៌ពុម្ពអក្សរ Color_Background: បង្ហាញពណ៌ផ្ទៃខាងក្រោយ

សរសេរលេខ៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរខ្សែអក្សរ
នៃលេខ អ្នកអាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ
ពណ៌ផ្ទៃខាងក្រោយ។
void Paint_DrawNum(UWORD Xpoint, UWORD Ypoint, double Number, sFONT* Fon t, UWORD Digit, UWORD Color_Foreground, UWORD Color_Background) ប៉ារ៉ាម៉ែត្រ៖
Xpoint៖ កូអរដោនេ x នៃចំនុចកំពូលខាងឆ្វេងនៃតួអក្សរ Y ចំណុច៖ កូអរដោនេ Y នៃចំនុចកំពូលខាងឆ្វេងនៃលេខពុម្ពអក្សរ៖ បង្ហាញពីលេខដែលបានបង្ហាញ ដែលអាចជាខ្ទង់ទសភាគ៖ វាជាលេខទសភាគ ពុម្ពអក្សរ៖ បណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii, ក្នុង​ថត​ពុម្ព​អក្សរ ការ​បង្ហាញ​បង្ហាញ​ផ្ដល់​ពុម្ព​អក្សរ​ដូច​ខាង​ក្រោម៖
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: ពណ៌ពុម្ពអក្សរ Color_Background: បង្ហាញពណ៌ផ្ទៃខាងក្រោយ

ពេលវេលាបង្ហាញ៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង ពេលវេលាបង្ហាញ អ្នក
អាចជ្រើសរើសពុម្ពអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
ទុកជាមោឃៈ Paint_DrawTime(UWORD Xstart, UWORD Ystart, PAINT_TIME *pTime, sFONT* Font, UWORD Color_Background, UWORD Color_Foreground) ប៉ារ៉ាម៉ែត្រ៖
Xstart: x-coordinate នៃចំនុចកំពូលខាងឆ្វេងនៃតួអក្សរ Ystart: កូអរដោនេ Y នៃចំនុចកំពូលខាងឆ្វេងរបស់ពុម្ពអក្សរ PTime: ពេលវេលាបង្ហាញ រចនាសម្ព័ន្ធពេលវេលាត្រូវបានកំណត់នៅទីនេះ ដរាបណាម៉ោង នាទី និងវិនាទីត្រូវបានបញ្ជូនទៅប៉ារ៉ាម៉ែត្រ ; ពុម្ពអក្សរ៖ បណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii នៅក្នុងថតពុម្ពអក្សរ ការបង្ហាញបង្ហាញពុម្ពអក្សរខាងក្រោម៖
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: ពណ៌ពុម្ពអក្សរ Color_Background: បង្ហាញពណ៌ផ្ទៃខាងក្រោយ

អានរូបភាព bmp មូលដ្ឋាន ហើយសរសេរវាទៅឃ្លាំងសម្ងាត់។
សម្រាប់ប្រព័ន្ធប្រតិបត្តិការ Linux ដូចជា Raspberry Pi អ្នកអាចអាន និងសរសេររូបភាពបាន។ សម្រាប់
Raspberry Pi នៅក្នុងថត៖ RaspberryPiclibGUIGUI_BMPfile.c.h).
UBYTE GUI_ReadBmp(const char *path, UWORD Xstart, UWORD Ystart) ប៉ារ៉ាម៉ែត្រ៖
ផ្លូវ៖ ផ្លូវទាក់ទងនៃរូបភាព BMP Xstart៖ កូអរដោនេ X នៃចំនុចកំពូលខាងឆ្វេងនៃរូបភាព ជាទូទៅ 0 ត្រូវបានឆ្លងកាត់តាមលំនាំដើម Ystart៖ កូអរដោនេ Y នៃចំនុចកំពូលខាងឆ្វេងនៃរូបភាព ជាទូទៅ ly 0 តាមលំនាំដើម

កូដសាកល្បងសម្រាប់អ្នកប្រើប្រាស់សម្រាប់ Raspberry Pi នៅក្នុងថត៖ RaspberryPicexamples, សម្រាប់លេខកូដសាកល្បងទាំងអស់;

ប្រសិនបើអ្នកត្រូវការដំណើរការកម្មវិធីតេស្ត LCD ទំហំ 0.96 អ៊ីញ អ្នកត្រូវបន្ថែម 0.96 ជាប៉ារ៉ាម៉ែត្រនៅពេលដំណើរការការបង្ហាញមេ។ ប្រតិបត្តិឡើងវិញក្នុងរបៀបបញ្ជាលីនុចដូចខាងក្រោម៖
ធ្វើឱ្យស្អាត ធ្វើឱ្យ sudo ./main 0.96
Python (សម្រាប់ Raspberry Pi) ធ្វើការជាមួយ python និង python3 ។ សម្រាប់ python ការហៅរបស់គាត់មិនស្មុគស្មាញដូច C. Raspberry Pi: RaspberryPipythonlib
lcdconfig.py ចាប់ផ្តើមដំណើរការម៉ូឌុល និងដំណើរការចេញ។
def module_init() def module_exit() ចំណាំ៖ 1. នេះគឺជាដំណើរការ GPIO មួយចំនួនមុន និងក្រោយពេលប្រើអេក្រង់ LCD។ 2. មុខងារ module_init() ត្រូវបានហៅដោយស្វ័យប្រវត្តិនៅក្នុង INIT () initi alizer នៅលើ LCD ប៉ុន្តែមុខងារ module_exit() ត្រូវការហៅដោយខ្លួនឯង។
GPIO អាននិងសរសេរ៖
def digital_write(pin, value) def digital_read(pin)
SPI សរសេរទិន្នន័យ។
def spi_writebyte (ទិន្នន័យ)
xxx_LCD_test.py (xxx បង្ហាញពីទំហំ ប្រសិនបើវាជា LCD ទំហំ 0.96 អ៊ីញ វាគឺ 0inch96_LCD_test.py ហើយដូច្នេះនៅលើ) python ស្ថិតនៅក្នុងថតខាងក្រោម៖ Raspberry Pi: RaspberryPipythonexamples
ប្រសិនបើកំណែ python របស់អ្នកគឺ python2 ហើយអ្នកត្រូវដំណើរការកម្មវិធីសាកល្បង LCD ទំហំ 0.96inch សូមប្រតិបត្តិវាឡើងវិញដូចខាងក្រោមក្នុងរបៀបបញ្ជា linux៖
sudo python 0inch96_LCD_test.py
ប្រសិនបើកំណែ python របស់អ្នកគឺ python3 ហើយអ្នកត្រូវដំណើរការកម្មវិធីតេស្ត LCD ទំហំ 0.96inch សូមប្រតិបត្តិឡើងវិញដូចខាងក្រោមក្នុងរបៀបបញ្ជា linux៖
sudo python3 0inch96_LCD_test.py
អំពីការកំណត់ការបង្វិល ប្រសិនបើអ្នកត្រូវកំណត់ការបង្វិលអេក្រង់នៅក្នុងកម្មវិធី python អ្នកអាចកំណត់វាដោយសេចក្តីថ្លែងការណ៍ im_r=image1.rotate(270)។
im_r=image1.rotate(270)
ឥទ្ធិពលបង្វិល យក 1.54 ជាអតីតample, លំដាប់គឺ 0°, 90°, 180°, 270°
មុខងារ GUI Python មានបណ្ណាល័យរូបភាព PIL តំណភ្ជាប់បណ្ណាល័យផ្លូវការ វាមិនចាំបាច់សរសេរកូដពីស្រទាប់ឡូជីខលដូច C ហើយអាចហៅដោយផ្ទាល់ទៅបណ្ណាល័យរូបភាពសម្រាប់ដំណើរការរូបភាព។ ខាងក្រោមនេះនឹងយក LCD ទំហំ 1.54 អ៊ីញ ជាអតីតampដូច្នេះ យើងផ្តល់ការពិពណ៌នាសង្ខេបអំពីការបង្ហាញ។
វាត្រូវការប្រើបណ្ណាល័យរូបភាព និងដំឡើងបណ្ណាល័យ។
sudo apt-get ដំឡើង python3-pil
ហើយបន្ទាប់មកនាំចូលបណ្ណាល័យ
ពី PIL នាំចូលរូបភាព រូបភាព រូបភាព រូបភាព ពុម្ពអក្សរ។
ក្នុង​ចំណោម​នោះ រូបភាព​ជា​បណ្ណាល័យ​មូលដ្ឋាន ImageDraw ជា​មុខងារ​គូរ ហើយ ImageFont ជា​មុខងារ​អត្ថបទ។
កំណត់ឃ្លាំងសម្ងាត់រូបភាព ដើម្បីសម្រួលដល់ការគូរ ការសរសេរ និងមុខងារផ្សេងទៀតនៅលើរូបភាព។
image1 = Image.new(“RGB”, (disp.width, disp.height), “WHITE”)
ប៉ារ៉ាម៉ែត្រទីមួយកំណត់ជម្រៅពណ៌នៃរូបភាព ដែលត្រូវបានកំណត់ជា “1” ដើម្បីបង្ហាញផែនទីនៃជម្រៅមួយប៊ីត។ ប៉ារ៉ាម៉ែត្រទីពីរគឺជា tuple ដែលកំណត់ទទឹង និងកម្ពស់នៃរូបភាព។ ប៉ារ៉ាម៉ែត្រទីបីកំណត់ពណ៌លំនាំដើមនៃសតិបណ្ដោះអាសន្ន ដែលត្រូវបានកំណត់ថាជា "ស" ។
បង្កើតវត្ថុគំនូរដោយផ្អែកលើរូបភាពទី 1 ដែលប្រតិបត្តិការគំនូរទាំងអស់នឹងត្រូវបានអនុវត្តនៅទីនេះ។
គូរ = ImageDraw.Draw(រូបភាព១)
គូរបន្ទាត់។
draw.line([(20, 10),(70, 60)], បំពេញ = “ក្រហម”, ទទឹង = 1)
ប៉ារ៉ាម៉ែត្រទីមួយគឺ tuple ធាតុបួនដែលចាប់ផ្តើមនៅ (0, 0) និងបញ្ចប់នៅ (127,0) ។ គូរបន្ទាត់។ បំពេញ =”0″ មានន័យថាពណ៌នៃបន្ទាត់គឺពណ៌ស។
គូរចតុកោណ។
draw.rectangle([(20,10),(70,60)],fill = “WHITE”, outline=”BLACK”)
អាគុយម៉ង់ទីមួយគឺ tuple នៃធាតុបួន។ (20,10) គឺជាតម្លៃកូអរដោណេនៅជ្រុងខាងឆ្វេងខាងលើនៃចតុកោណកែង ហើយ (70,60) គឺជាតម្លៃកូអរដោណេនៅជ្រុងខាងក្រោមខាងស្តាំនៃចតុកោណ។ Fill = "WHITE" មានន័យថា ខ្មៅនៅខាងក្នុង ហើយគ្រោង = "BLACK" មានន័យថាពណ៌នៃគ្រោងគឺខ្មៅ។
គូររង្វង់មួយ។
draw.arc((150,15,190,55),0, 360, បំពេញ =(0,255,0)
គូររង្វង់ដែលមានចារឹកក្នុងការ៉េ ប៉ារ៉ាម៉ែត្រទីមួយគឺជាដុំនៃធាតុចំនួន 4 ដែលមាន (150, 15) ជាកំពូលជ្រុងខាងឆ្វេងខាងលើនៃការ៉េ (190, 55) ជាចំនុចកំពូលជ្រុងខាងស្តាំនៃការ៉េ ដោយបញ្ជាក់ កម្រិតបន្ទាត់មធ្យមនៃស៊ុមចតុកោណកែងគឺមុំ 0 ដឺក្រេ ប៉ារ៉ាម៉ែត្រទីពីរបង្ហាញពីមុំចាប់ផ្តើម ប៉ារ៉ាម៉ែត្រទីបីបង្ហាញពីមុំបញ្ចប់ ហើយការបំពេញ = 0 បង្ហាញថាពណ៌នៃបន្ទាត់គឺពណ៌ស។ ប្រសិនបើតួលេខមិនមានរាងការ៉េតាមការសំរបសំរួលនោះអ្នកនឹងទទួលបានរាងពងក្រពើ។ ក្រៅពីមុខងារធ្នូ អ្នកក៏អាចប្រើមុខងារអង្កត់ធ្នូសម្រាប់គូររង្វង់រឹងផងដែរ។
draw.ellipse((150,65,190,105), បំពេញ = 0)
ប៉ារ៉ាម៉ែត្រទីមួយគឺការសម្របសម្រួលនៃចតុកោណកែង។ ប៉ារ៉ាម៉ែត្រទីពីរនិងទីបីគឺជាដឺក្រេចាប់ផ្តើមនិងចុងបញ្ចប់នៃរង្វង់។ ប៉ារ៉ាម៉ែត្រទីបួនគឺជាពណ៌បំពេញនៃរង្វង់។
តួអក្សរ។ ម៉ូឌុល ImageFont ចាំបាច់ត្រូវនាំចូល និងធ្វើភ្លាមៗ៖
Font1 = ImageFont.truetype(“../Font/Font01.ttf”,25) Font2 = ImageFont.truetype(“../Font/Font01.ttf”,35) Font3 = ImageFont.truetype(“../Font/ Font02.ttf”, ៣២)
អ្នកអាចប្រើពុម្ពអក្សររបស់ Windows ឬពុម្ពអក្សរផ្សេងទៀតដែលមានទម្រង់ ttc.. ចំណាំ៖ បណ្ណាល័យតួអក្សរនីមួយៗមានតួអក្សរផ្សេងៗគ្នា។ ប្រសិនបើតួអក្សរមួយចំនួនមិនអាចបង្ហាញបានទេ វាត្រូវបានណែនាំថាអ្នកអាចយោងទៅសំណុំការអ៊ិនកូដ ro ដែលបានប្រើ។ ដើម្បីគូរអក្សរអង់គ្លេស អ្នកអាចប្រើពុម្ពអក្សរដោយផ្ទាល់។ សម្រាប់អក្សរចិន អ្នកត្រូវបន្ថែមនិមិត្តសញ្ញា u៖
draw.text((40, 50), 'WaveShare', បំពេញ = (128,255,128), font=Font2) text= u”” draw.text((74, 150), អត្ថបទ, បំពេញ = “WHITE”, font=Font3 )
ប៉ារ៉ាម៉ែត្រទីមួយគឺជាដុំនៃធាតុ 2 ដែលមាន (40, 50) ជាចំនុចកំពូលខាងឆ្វេង ពុម្ពអក្សរគឺ Font2 ហើយការបំពេញគឺជាពណ៌ពុម្ពអក្សរ។ អ្នកអាចធ្វើការបំពេញ = "WHITE" ដោយផ្ទាល់ ពីព្រោះតម្លៃពណ៌ធម្មតាត្រូវបានកំណត់រួចហើយ ជាការប្រសើរណាស់ អ្នកក៏អាចប្រើការបំពេញ = (128,255,128) វង់ក្រចកត្រូវគ្នាទៅនឹងតម្លៃនៃពណ៌ RGB ទាំងបី ដូច្នេះអ្នកអាចគ្រប់គ្រងបានយ៉ាងជាក់លាក់។ ពណ៌ដែលអ្នកចង់បាន។ ប្រយោគទីពីរបង្ហាញពី Micro Snow Electronics ដោយប្រើ Font3 ពណ៌ពុម្ពអក្សរគឺពណ៌ស។
អានរូបភាពក្នុងស្រុក
រូបភាព = Image.open('../pic/LCD_1inch28.jpg')
ប៉ារ៉ាម៉ែត្រគឺជាផ្លូវរូបភាព។ មុខងារផ្សេងទៀត។
សម្រាប់ព័ត៌មានបន្ថែម អ្នកអាចចូលទៅកាន់ http://effbot.org/imagingbook pil
ប្រើជាមួយ STM32
ការពិពណ៌នាកម្មវិធី
ការបង្ហាញនេះត្រូវបានបង្កើតឡើងដោយផ្អែកលើបណ្ណាល័យ HAL ។ ទាញយកការបង្ហាញ ស្វែងរកកម្មវិធី STM32 file ថត ហើយបើក LCD_demo.uvprojx ក្នុងថត STM32STM32F103RBT6MDK-ARM ដើម្បីពិនិត្យមើលកម្មវិធី។
បើក main.c អ្នកអាចមើលឃើញកម្មវិធីសាកល្បងទាំងអស់ ដកមតិយោបល់នៅពីមុខកម្មវិធីសាកល្បងនៅលើអេក្រង់ដែលត្រូវគ្នា ហើយចងក្រង និងទាញយកឡើងវិញ។

LCD_0in96_test() កម្មវិធីតេស្ត LCD 0.96inch LCD_1in14_test() 1.14inch LCD test program LCD_1in28_test() 1.28inch LCD test program LCD_1in3_test() 1.3 inch LCD test program LCD_1in54_test() 1.54inch LCD test program LCD_test() 1inch LCD test program LCD_8. ) កម្មវិធីសាកល្បង LCD 1.8 អ៊ីញ
ការពិពណ៌នាកម្មវិធី

ចំណុចប្រទាក់ផ្នែករឹងមូលដ្ឋាន

ប្រភេទទិន្នន័យ

#define UBYTE #define UWORD #define UDOUBLE

uint8_t uint16_t uint32_t

ការចាប់ផ្តើមម៉ូឌុល និងដំណើរការចេញ
UBYTE System_Init (ទុកជាមោឃៈ); void System_Exit (void); ចំណាំ៖ 1. Here is some GPIO processing before and after using the LCD screen. 2.បន្ទាប់ពីមុខងារ System_Exit (ចាត់ទុកជាមោឃៈ) អេក្រង់ OLED នឹងមិនត្រូវបានបិទ។

សរសេរនិងអាន GPIO

UBYTE ទុកជាមោឃៈ

DEV_Digital_Write(UWORD Pin, UBYTE តម្លៃ); DEV_Digital_Read(UWORD Pin);

SPI សរសេរទិន្នន័យ
UBYTE SPI4W_Write_Byte (តម្លៃ uint8_t);

កម្មវិធីខាងលើ
សម្រាប់អេក្រង់ ប្រសិនបើអ្នកត្រូវការគូររូបភាព បង្ហាញអក្សរចិន និងអង់គ្លេស បង្ហាញរូបភាពជាដើម។ អ្នកអាចប្រើកម្មវិធីខាងលើដើម្បីធ្វើ ហើយយើងផ្តល់មុខងារជាមូលដ្ឋានមួយចំនួននៅទីនេះអំពីដំណើរការក្រាហ្វិកមួយចំនួននៅក្នុងថត STM32STM32F103RBUserGUI_DEVGUI_Paint.c( .h) ចំណាំ៖ ដោយសារតែទំហំ RAM ខាងក្នុងរបស់ STM32 និង arduino GUI ត្រូវបានសរសេរដោយផ្ទាល់ទៅកាន់ RAM របស់ LCD។

ពុម្ពអក្សរតួអក្សរដែល GUI អាស្រ័យគឺនៅក្នុងថត STM32STM32F103RBUserFonts

លក្ខណៈសម្បត្តិរូបភាពថ្មី៖ បង្កើតលក្ខណសម្បត្តិរូបភាពថ្មី លក្ខណសម្បត្តិនេះរួមបញ្ចូលឈ្មោះបណ្ដោះអាសន្នរូបភាព ទទឹង កម្ពស់ ត្រឡប់មុំ ពណ៌។
void Paint_NewImage(ទទឹង UWORD, កម្ពស់ UWORD, UWORD បង្វិល, ពណ៌ UWORD) ប៉ារ៉ាម៉ែត្រ៖
ទទឹង៖ រូបភាព សតិបណ្ដោះអាសន្ន ទទឹង; កម្ពស់៖ កម្ពស់នៃសតិបណ្ដោះអាសន្នរូបភាព; បង្វិល៖ បង្ហាញមុំបង្វិលនៃរូបភាព ពណ៌៖ ពណ៌ដំបូងនៃរូបភាព;

កំណត់មុខងារអេក្រង់ច្បាស់ ជាធម្មតាហៅមុខងារច្បាស់របស់ LCD ដោយផ្ទាល់។
ទុកជាមោឃៈ Paint_SetClearFuntion(ចាត់ទុកជាមោឃៈ (*ជម្រះ)(UWORD)); ប៉ារ៉ាម៉ែត្រ៖
ច្បាស់៖ ចង្អុលទៅមុខងារអេក្រង់ច្បាស់ ប្រើដើម្បីសម្អាតអេក្រង់យ៉ាងលឿនទៅជាពណ៌ជាក់លាក់មួយ។

កំណត់មុខងារភីកសែលគំនូរ
void Paint_SetDisplayFuntion(void (*Display)(UWORD,UWORD,UWORD)); ប៉ារ៉ាម៉ែត្រ៖
ការបង្ហាញ៖ ចង្អុលទៅមុខងារគំនូរភីកសែល ដែលប្រើសម្រាប់សរសេរទិន្នន័យទៅកាន់ទីតាំងដែលបានបញ្ជាក់នៅក្នុង RAM ខាងក្នុងរបស់ LCD ។

ជ្រើសរើសរូបភាពបណ្ដោះអាសន្ន៖ គោលបំណងនៃការជ្រើសរើសគឺអ្នកអាចបង្កើតគុណលក្ខណៈរូបភាពច្រើន សតិបណ្ដោះអាសន្នរូបភាពអាចមានច្រើន អ្នកអាចជ្រើសរើសរូបភាពនីមួយៗដែលអ្នកបង្កើត។
មោឃៈ Paint_SelectImage(UBYTE *image) ប៉ារ៉ាម៉ែត្រ៖
រូបភាព៖ ឈ្មោះ​នៃ​ឃ្លាំង​សម្ងាត់​រូបភាព ដែល​ពិត​ជា​ចង្អុល​ទៅ​អាសយដ្ឋាន​ទីមួយ​នៃ​បណ្ដុំរូបភាព

ការបង្វិលរូបភាព៖ កំណត់មុំបង្វិលរូបភាពដែលបានជ្រើសរើស និយមបន្ទាប់ពី Paint_SelectImage() អ្នកអាចជ្រើសរើសបង្វិល 0, 90, 180, 270។
មោឃៈ Paint_SetRotate(UWORD Rotate) ប៉ារ៉ាម៉ែត្រ៖
បង្វិល៖ ROTATE_0, ROTATE_90, ROTATE_180, និង ROTATE_270 ត្រូវគ្នាទៅនឹង 0, 90, 180, និង 270 ដឺក្រេរៀងគ្នា។

ការបត់កញ្ចក់រូបភាព៖ កំណត់ការបត់កញ្ចក់នៃរូបភាពដែលបានជ្រើសរើស។ អ្នកអាចជ្រើសរើសគ្មានកញ្ចក់ កញ្ចក់ផ្តេក កញ្ចក់បញ្ឈរ ឬកញ្ចក់កណ្តាលរូបភាព។
មោឃៈ Paint_SetMirroring(កញ្ចក់ UBYTE) ប៉ារ៉ាម៉ែត្រ៖
កញ្ចក់៖ បង្ហាញពីរបៀបឆ្លុះរូបភាព។ MIRROR_NONE, MIRROR_HORIZO NTAL, MIRROR_VERTICAL, MIRROR_ORIGIN ទាក់ទង​នឹង​គ្មាន​កញ្ចក់, កំហុស​ម៉ែត្រ​ផ្ដេក, កញ្ចក់​បញ្ឈរ និង​អំពី​កញ្ចក់​កណ្តាល​រូបភាព​រៀងៗខ្លួន។

កំណត់ចំណុចនៃទីតាំងបង្ហាញ និងពណ៌នៅក្នុងសតិបណ្ដោះអាសន្ន៖ នេះគឺជាមុខងារ GUI ស្នូល ដំណើរការចំណុចបង្ហាញទីតាំង និងពណ៌នៅក្នុងសតិបណ្ដោះអាសន្ន។
មោឃៈ Paint_SetPixel(UWORD Xpoint, UWORD Ypoint, UWORD Color) ប៉ារ៉ាម៉ែត្រ៖
Xpoint៖ ទីតាំង X នៃចំណុចមួយនៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ចំណុច Y ចំណុច៖ ទីតាំង Y នៃចំណុចមួយនៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ពណ៌៖ បង្ហាញពីពណ៌នៃចំនុច

ពណ៌បំពេញសតិបណ្ដោះអាសន្នរូបភាព៖ បំពេញសតិបណ្ដោះអាសន្នរូបភាពដោយពណ៌ ដែលជាធម្មតាប្រើដើម្បីបញ្ចេញពន្លឺអេក្រង់ទៅជាទទេ។
void Paint_Clear(UWORD Color) ប៉ារ៉ាម៉ែត្រ៖
ពណ៌៖ បំពេញពណ៌

ផ្នែកសតិបណ្ដោះអាសន្នរូបភាពនៃពណ៌បំពេញបង្អួច៖ ផ្នែកសតិបណ្ដោះអាសន្នរូបភាពនៃបង្អួចពោរពេញដោយពណ៌ជាក់លាក់មួយ ជាទូទៅជាមុខងារសម្អាតបង្អួច ដែលជារឿយៗប្រើសម្រាប់ការបង្ហាញពេលវេលា ការលាងជម្រះពណ៌សនៅលើមួយវិនាទី
void Paint_ClearWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yen d, UWORD Color) ប៉ារ៉ាម៉ែត្រ៖
Xstart: កូអរដោនេ x-start នៃ window Ystart: បង្ហាញពីចំនុចចាប់ផ្តើម Y នៃ window Xend: កូអរដោនេ x-end នៃ window Yend: បង្ហាញពីកូអរដោណេ y-end នៃ window Color: បំពេញ Color

គូរចំណុច៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព គូសចំណុចនៅលើ (Xpoint, Ypoint) អ្នកអាចជ្រើសរើសពណ៌ ទំហំចំណុច រចនាប័ទ្មនៃចំណុច។

ទុកជាមោឃៈ Paint_DrawPoint(UWORD Xpoint, UWORD Ypoint, UWORD Color, DOT_PIXEL ធ្វើ

t_Pixel, DOT_STYLE Dot_Style)

ប៉ារ៉ាម៉ែត្រ៖

Xpoint៖ បង្ហាញពីកូអរដោនេ X នៃចំណុចមួយ។

ចំណុច Y៖ បង្ហាញពីកូអរដោនេ Y នៃចំណុចមួយ។

ពណ៌៖ បំពេញពណ៌

Dot_Pixel៖ ទំហំនៃចំនុចដែលផ្តល់លំនាំដើមនៃទំហំប្រាំបីចំណុច

ts

typedef enum {

DOT_PIXEL_1X1 = 1,

// 1 x 1

DOT_PIXEL_2X2 ,

// 2 X 2

DOT_PIXEL_3X3 ,

// 3 X 3

DOT_PIXEL_4X4 ,

// 4 X 4

DOT_PIXEL_5X5 ,

// 5 X 5

DOT_PIXEL_6X6 ,

// 6 X 6

DOT_PIXEL_7X7 ,

// 7 X 7

DOT_PIXEL_8X8 ,

// 8 X 8

} DOT_PIXEL;

Dot_Style៖ ទំហំនៃចំណុចដែលពង្រីកពីកណ្តាលនៃ poi

nt ឬពីជ្រុងខាងឆ្វេងខាងក្រោមនៃចំណុចទៅខាងស្តាំ និងឡើងលើ

typedef enum {

DOT_FILL_AROUND = 1,

DOT_FILL_RIGHTUP,

} DOT_STYLE;

គំនូរបន្ទាត់៖ នៅក្នុងបណ្តុំរូបភាព បន្ទាត់ពី (Xstart, Ystart) ទៅ (Xend, Yend) អ្នកអាចជ្រើសរើសពណ៌ ទទឹងបន្ទាត់ រចនាប័ទ្មបន្ទាត់។

មោឃៈ Paint_DrawLine(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UW

ORD Color, LINE_STYLE Line_Style, LINE_STYLE Line_Style)

ប៉ារ៉ាម៉ែត្រ៖

Xstart៖ កូអរដោនេ x-start នៃបន្ទាត់

Ystart៖ បង្ហាញចំណុចចាប់ផ្តើម Y នៃបន្ទាត់

Xend: x-terminus នៃបន្ទាត់

Yend៖ កូអរដោនេ y-end នៃបន្ទាត់មួយ។

ពណ៌៖ បំពេញពណ៌

Line_width៖ ទទឹង​បន្ទាត់​ដែល​ផ្ដល់​លំនាំដើម​ប្រាំបី w

idths

typedef enum {

DOT_PIXEL_1X1 = 1,

// 1 x 1

DOT_PIXEL_2X2 ,

// 2 X 2

DOT_PIXEL_3X3 ,

// 3 X 3

DOT_PIXEL_4X4 ,

// 4 X 4

DOT_PIXEL_5X5 ,

// 5 X 5

DOT_PIXEL_6X6 ,

// 6 X 6

DOT_PIXEL_7X7 ,

// 7 X 7

DOT_PIXEL_8X8 ,

// 8 X 8

} DOT_PIXEL;

Line_Style៖ រចនាប័ទ្មបន្ទាត់។ ជ្រើសរើស​ថា​តើ​បន្ទាត់​ត្រូវ​បាន​ភ្ជាប់​ក្នុង​ផ្លូវ​ឬ​អត់

ght ឬវិធីដាច់ ៗ

typedef enum {

LINE_STYLE_SOLID = 0,

LINE_STYLE_DOTTED,

} LINE_STYLE;

គូរចតុកោណកែង៖ នៅក្នុងរូបភាព buffer គូរចតុកោណកែងពី (Xstart, Ystart) ទៅ (Xend, Yend) អ្នកអាចជ្រើសរើសពណ៌ ទទឹងនៃបន្ទាត់ ថាតើត្រូវបំពេញផ្នែកខាងក្នុងនៃចតុកោណ។

void Paint_DrawRectangle(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yen

d, UWORD Color, DOT_PIXEL Line_width, DRAW_FILL Draw_Fill)

ប៉ារ៉ាម៉ែត្រ៖

Xstart៖ កូអរដោណេ X ចាប់ផ្តើមនៃចតុកោណកែង

Ystart៖ បង្ហាញចំណុចចាប់ផ្តើម Y នៃចតុកោណកែង

Xend: X បញ្ចប់នៃចតុកោណកែង

Yend៖ បញ្ជាក់​កូអរដោណេ y-end នៃ​ចតុកោណកែង

ពណ៌៖ បំពេញពណ៌

Line_width៖ ទទឹង​បួន​ជ្រុង​នៃ​ចតុកោណកែង។ លំនាំដើម ei

ទទឹង ght ត្រូវបានផ្តល់ជូន

typedef enum {

DOT_PIXEL_1X1 = 1, // 1 x 1

DOT_PIXEL_2X2 ,

// 2 X 2

DOT_PIXEL_3X3 ,

// 3 X 3

DOT_PIXEL_4X4 ,

// 4 X 4

DOT_PIXEL_5X5 ,

// 5 X 5

DOT_PIXEL_6X6 ,

// 6 X 6

DOT_PIXEL_7X7 ,

// 7 X 7

DOT_PIXEL_8X8 ,

// 8 X 8

} DOT_PIXEL;

Draw_Fill៖ បំពេញ ថាតើត្រូវបំពេញផ្នែកខាងក្នុងនៃចតុកោណ

typedef enum {

DRAW_FILL_EMPTY = 0,

DRAW_FILL_FULL,

} DRAW_FILL;

គូររង្វង់៖ នៅក្នុងបណ្តុំរូបភាព គូសរង្វង់កាំជាមួយ (X_Center Y_Center) ជាកណ្តាល។ អ្នកអាចជ្រើសរើសពណ៌ ទទឹងនៃបន្ទាត់ និងថាតើត្រូវបំពេញផ្នែកខាងក្នុងនៃរង្វង់។

មោឃៈ Paint_DrawCircle(UWORD X_Center, UWORD Y_Center, UWORD Radius, UWORD

ពណ៌ DOT_PIXEL Line_width, DRAW_FILL Draw_Fill)

ប៉ារ៉ាម៉ែត្រ៖

X_Center៖ x-coordinate នៃកណ្តាលរង្វង់មួយ។

Y_Center៖ កូអរដោនេ Y នៃ​កណ្តាល​រង្វង់

កាំ៖ បង្ហាញពីកាំនៃរង្វង់

ពណ៌៖ បំពេញពណ៌

Line_width៖ ទទឹង​នៃ​ធ្នូ​ដែល​មាន​លំនាំដើម​គឺ 8 width

typedef enum {

DOT_PIXEL_1X1 = 1,

// 1 x 1

DOT_PIXEL_2X2 ,

// 2 X 2

DOT_PIXEL_3X3 ,

// 3 X 3

DOT_PIXEL_4X4 ,

// 4 X 4

DOT_PIXEL_5X5 ,

// 5 X 5

DOT_PIXEL_6X6 ,

// 6 X 6

DOT_PIXEL_7X7 ,

// 7 X 7

DOT_PIXEL_8X8 ,

// 8 X 8

} DOT_PIXEL;

Draw_Fill៖ បំពេញ ថាតើត្រូវបំពេញខាងក្នុងរង្វង់

typedef enum {

DRAW_FILL_EMPTY = 0,

DRAW_FILL_FULL,

} DRAW_FILL;

សរសេរតួអក្សរ Ascii៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព នៅ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សូមសរសេរ
តួអក្សរ Ascii អ្នកអាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ
ពណ៌ផ្ទៃខាងក្រោយ។
ទុកជាមោឃៈ Paint_DrawChar(UWORD Xstart, UWORD Ystart, const char Ascii_Char, sFO NT* Font, UWORD Color_Foreground, UWORD Color_Background) ប៉ារ៉ាម៉ែត្រ៖
Xstart: x-coordinate នៃ vertex ខាងឆ្វេងនៃតួអក្សរមួយ Ystart: កូអរដោនេ Y នៃ font vertex ខាងឆ្វេង Ascii_Char: បង្ហាញពីតួអក្សរ Ascii Font: Ascii visual character library នៅក្នុង Fonts folder ផ្តល់នូវ Fonts ខាងក្រោម៖
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: ពណ៌ពុម្ពអក្សរ Color_Background: បង្ហាញពណ៌ផ្ទៃខាងក្រោយ

សរសេរខ្សែអក្សរអង់គ្លេស៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរ a
ខ្សែអក្សរអង់គ្លេស អាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ផ្ទៃខាងមុខពុម្ពអក្សរ
ពណ៌, ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
void Paint_DrawString_EN(UWORD Xstart, UWORD Ystart, const char * pString, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background) ប៉ារ៉ាម៉ែត្រ៖
Xstart: x-coordinate នៃ vertex ខាងឆ្វេងនៃតួអក្សរ Ystart: កូអរដោនេ Y នៃ font vertex vertex PSTring: string, string គឺជាទ្រនិចពុម្ពអក្សរ៖ Ascii visual character library នៅក្នុង Fonts folder ផ្តល់នូវ Fonts ខាងក្រោម៖
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: ពណ៌ពុម្ពអក្សរ Color_Background: បង្ហាញពណ៌ផ្ទៃខាងក្រោយ

សរសេរខ្សែអក្សរចិន៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរអក្សរចិនមួយជួរ អ្នកអាចជ្រើសរើសពុម្ពអក្សរតួអក្សរបំប្លែង GB2312 ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
ទុកជាមោឃៈ Paint_DrawString_CN(UWORD Xstart, UWORD Ystart, const char * pString, cFONT* font, UWORD Color_Foreground, UWORD Color_Background) ប៉ារ៉ាម៉ែត្រ៖
Xstart: x-coordinate នៃ vertex ខាងឆ្វេងនៃតួអក្សរ Ystart: កូអរដោនេ Y នៃ font vertex vertex PSTring: string, string is a pointer Font: GB2312 encoding character library, in the Fonts folder prov ides the following Fonts:
Font12CN: ពុម្ពអក្សរ ASCII 11*21, ពុម្ពអក្សរចិន 16*21 Font24CN: ASCII font24 *41, ពុម្ពអក្សរចិន 32*41 Color_Foreground: ពណ៌ពុម្ពអក្សរ Color_Background: បង្ហាញពណ៌ផ្ទៃខាងក្រោយ

សរសេរលេខ៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរខ្សែអក្សរ
នៃលេខ អ្នកអាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ
ពណ៌ផ្ទៃខាងក្រោយ។
void Paint_DrawNum(UWORD Xpoint, UWORD Ypoint, double Number, sFONT* Fon t, UWORD Digit, UWORD Color_Foreground, UWORD Color_Background) ប៉ារ៉ាម៉ែត្រ៖
Xpoint៖ កូអរដោនេ x នៃចំនុចកំពូលខាងឆ្វេងនៃតួអក្សរ Y ចំណុច៖ កូអរដោនេ Y នៃចំនុចកំពូលខាងឆ្វេងនៃលេខពុម្ពអក្សរ៖ បង្ហាញពីលេខដែលបានបង្ហាញ ដែលអាចជាខ្ទង់ទសភាគ៖ វាជាលេខទសភាគ ពុម្ពអក្សរ៖ បណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii, នៅក្នុងថត Fonts ផ្តល់នូវ Fonts ខាងក្រោម៖
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: ពណ៌ពុម្ពអក្សរ Color_Background: បង្ហាញពណ៌ផ្ទៃខាងក្រោយ

ពេលវេលាបង្ហាញ៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង ពេលវេលាបង្ហាញ អ្នក
អាចជ្រើសរើសពុម្ពអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
ទុកជាមោឃៈ Paint_DrawTime(UWORD Xstart, UWORD Ystart, PAINT_TIME *pTime, sFONT* Font, UWORD Color_Background, UWORD Color_Foreground) ប៉ារ៉ាម៉ែត្រ៖
Xstart: x-coordinate នៃ vertex ខាងឆ្វេងនៃតួអក្សរ Ystart: កូអរដោនេ Y នៃ font vertex vertex PTime: ពេលវេលាបង្ហាញ នៅទីនេះកំណត់រចនាសម្ព័ន្ធពេលវេលាដ៏ល្អ ដរាបណា th e ម៉ោង នាទី និងប៊ីតទីពីរនៃទិន្នន័យទៅ ប៉ារ៉ាម៉ែត្រ; ពុម្ពអក្សរ៖ បណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii នៅក្នុងថតពុម្ពអក្សរផ្តល់នូវពុម្ពអក្សរខាងក្រោម៖
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: ពណ៌ពុម្ពអក្សរ Color_Background: បង្ហាញពណ៌ផ្ទៃខាងក្រោយ

ការពិពណ៌នាអំពីកម្មវិធី Arduino
ចំណាំ៖ ការបង្ហាញទាំងអស់ត្រូវបានសាកល្បងនៅលើ Arduino uno ។ ប្រសិនបើអ្នកត្រូវការប្រភេទ Arduino ផ្សេងទៀត អ្នកត្រូវកំណត់ថាតើម្ជុលដែលបានតភ្ជាប់ត្រឹមត្រូវឬអត់។
ដំណើរការកម្មវិធី
នៅក្នុងចំណុចប្រទាក់សព្វវចនាធិប្បាយផលិតផល ទាញយកកម្មវិធី ហើយបន្ទាប់មកពន្លាវា។ កម្មវិធី Arduino មានទីតាំងនៅ ~/Arduino/…

សូមជ្រើសរើសកម្មវិធីដែលត្រូវគ្នាដោយយោងតាមគំរូអេក្រង់ LCD ដើម្បីបើក។

អ្នកអាចធ្វើបាន view កម្មវិធីសាកល្បងសម្រាប់ទំហំអេក្រង់ទាំងអស់ តម្រៀបតាមទំហំ៖
សម្រាប់អតីតample, ម៉ូឌុល LCD 1.54 អ៊ីញ។ បើកថត LCD_1inch54 ហើយដំណើរការ LCD_1inch54.ino file. បើកកម្មវិធី ជ្រើសរើសគំរូក្រុមប្រឹក្សាអភិវឌ្ឍន៍ Arduino UNO ។

ជ្រើសរើសច្រក COM ដែលត្រូវគ្នា។

បន្ទាប់មកចុចដើម្បីចងក្រង និងទាញយក

ការពិពណ៌នាកម្មវិធី សេចក្តីផ្តើមឯកសារ
យក Arduino UNO គ្រប់គ្រងអេក្រង់ LCD 1.54 អ៊ីញជាអតីតampបើកថត ArduinoLCD_1inch54៖
ក្នុងនោះ៖ LCD_1inch54.ino៖ បើកជាមួយ Arduino IDE; LCD_Driver.cpp.h): គឺជាអ្នកបើកបរនៃអេក្រង់ LCD; DEV_Config.cpp.h)៖ វាគឺជានិយមន័យនៃចំណុចប្រទាក់ផ្នែករឹង ដែលបង្កប់នូវកម្រិតនៃការអាន និងសរសេរលេខម្ជុល ទិន្នន័យបញ្ជូន SPI និងការចាប់ផ្តើមម្ជុល។ font8.cpp, font12.cpp, font16.cpp, font20.cpp, font24.cpp, font24CN.cpp, fonts.h: ពុម្ពអក្សរសម្រាប់តួអក្សរដែលមានទំហំខុសៗគ្នា; image.cpp.h): គឺជាទិន្នន័យរូបភាព ដែលអាចបំប្លែងរូបភាព BMP ណាមួយទៅជាអារេរូបភាពពណ៌ពិត 16 ប៊ីត តាមរយៈ Img2Lcd (អាចទាញយកបានក្នុងទិន្នន័យអភិវឌ្ឍន៍)។ កម្មវិធីនេះត្រូវបានបែងចែកទៅជាចំណុចប្រទាក់ផ្នែករឹងស្រទាប់ខាងក្រោម កម្មវិធីបញ្ជាអេក្រង់ LCD ស្រទាប់កណ្តាល និងកម្មវិធីស្រទាប់ខាងលើ។
ចំណុចប្រទាក់ផ្នែករឹងមូលដ្ឋាន
ចំណុចប្រទាក់ផ្នែករឹងត្រូវបានកំណត់ក្នុងពីរ files DEV_Config.cpp.h) និងមុខងារដូចជាអាន និងសរសេរកម្រិតម្ជុល ការពន្យាពេល និងការបញ្ជូន SPI ត្រូវបានរុំព័ទ្ធ។
សរសេរកម្រិតម្ជុល
ទុកជាមោឃៈ DEV_Digital_Write(int pin តម្លៃ int)
ប៉ារ៉ាម៉ែត្រទីមួយគឺម្ជុលហើយទីពីរគឺកម្រិតខ្ពស់និងទាប។ អានកម្រិតម្ជុល
int DEV_Digital_Read(int pin)
ប៉ារ៉ាម៉ែត្រ​គឺ​ម្ជុល ហើយ​តម្លៃ​ត្រឡប់​គឺ​ជា​កម្រិត​នៃ​ម្ជុល​អាន។ ពន្យាពេល
DEV_Delay_ms(ពេលវេលាពន្យាពេល int មិនបានចុះហត្ថលេខា)
ការពន្យាពេលកម្រិតមីលីវិនាទី។ ទិន្នន័យលទ្ធផល SPI
DEV_SPI_WRITE (ទិន្នន័យតួអក្សរដែលមិនបានចុះហត្ថលេខា)
ប៉ារ៉ាម៉ែត្រគឺប្រភេទ char កាន់កាប់ 8 ប៊ីត។ កម្មវិធីខាងលើ
សម្រាប់អេក្រង់ ប្រសិនបើអ្នកត្រូវការគូររូបភាព បង្ហាញអក្សរចិន និងអង់គ្លេស បង្ហាញរូបភាពជាដើម អ្នកអាចប្រើកម្មវិធីខាងលើដើម្បីធ្វើ ហើយយើងផ្តល់មុខងារជាមូលដ្ឋានមួយចំនួននៅទីនេះអំពីដំណើរការក្រាហ្វិកមួយចំនួននៅក្នុងថត GUI_Paint.c( .h) ចំណាំ៖ ដោយសារតែទំហំនៃ RAM ខាងក្នុងរបស់ STM32 និង Arduino GUI ត្រូវបានសរសេរដោយផ្ទាល់ទៅកាន់ RAM របស់ LCD ។
ពុម្ពអក្សរដែលប្រើដោយ GUI ទាំងអស់គឺអាស្រ័យលើពុម្ពអក្សរ*.cpp(h) files នៅក្រោមដូចគ្នា។ file

លក្ខណៈសម្បត្តិរូបភាពថ្មី៖ បង្កើតលក្ខណសម្បត្តិរូបភាពថ្មី លក្ខណសម្បត្តិនេះរួមបញ្ចូលឈ្មោះបណ្ដោះអាសន្នរូបភាព ទទឹង កម្ពស់ មុំត្រឡប់ និងពណ៌។
void Paint_NewImage(ទទឹង UWORD, កម្ពស់ UWORD, UWORD បង្វិល, ពណ៌ UWORD) ប៉ារ៉ាម៉ែត្រ៖
ទទឹង៖ រូបភាព សតិបណ្ដោះអាសន្ន ទទឹង; កម្ពស់៖ កម្ពស់នៃសតិបណ្ដោះអាសន្នរូបភាព; បង្វិល៖ បង្ហាញមុំបង្វិលនៃរូបភាព ពណ៌៖ ពណ៌ដំបូងនៃរូបភាព;

កំណត់មុខងារអេក្រង់ច្បាស់ ជាធម្មតាហៅមុខងារច្បាស់របស់ LCD ដោយផ្ទាល់។
ទុកជាមោឃៈ Paint_SetClearFuntion(ចាត់ទុកជាមោឃៈ (*ជម្រះ)(UWORD)); ប៉ារ៉ាម៉ែត្រ៖
ច្បាស់៖ ចង្អុលទៅមុខងារអេក្រង់ច្បាស់ ប្រើដើម្បីសម្អាតអេក្រង់យ៉ាងលឿនទៅជាពណ៌ជាក់លាក់។

កំណត់មុខងារភីកសែលគំនូរ។
void Paint_SetDisplayFuntion(void (*Display)(UWORD,UWORD,UWORD)); ប៉ារ៉ាម៉ែត្រ៖
ការបង្ហាញ៖ ចង្អុលទៅមុខងារគំនូរភីកសែល ដែលប្រើសម្រាប់សរសេរទិន្នន័យទៅកាន់ទីតាំងដែលបានបញ្ជាក់នៅក្នុង RAM ខាងក្នុងរបស់ LCD ។

ជ្រើសរើសរូបភាពបណ្ដោះអាសន្ន៖ គោលបំណងនៃការជ្រើសរើសគឺអ្នកអាចបង្កើតគុណលក្ខណៈរូបភាពច្រើន អង្គចងចាំរូបភាពអាចមានច្រើន ហើយអ្នកអាចជ្រើសរើសរូបភាពនីមួយៗដែលអ្នកបង្កើត។
មោឃៈ Paint_SelectImage(UBYTE *image) ប៉ារ៉ាម៉ែត្រ៖
រូបភាព៖ ឈ្មោះ​នៃ​ឃ្លាំង​សម្ងាត់​រូបភាព ដែល​ពិត​ជា​ចង្អុល​ទៅ​អាសយដ្ឋាន​ទីមួយ​នៃ​បណ្ដុំរូបភាព

ការបង្វិលរូបភាព៖ កំណត់មុំបង្វិលរូបភាពដែលបានជ្រើសរើស និយមបន្ទាប់ពី Paint_SelectImage() អ្នកអាចជ្រើសរើសបង្វិល 0, 90, 180, 270។
មោឃៈ Paint_SetRotate(UWORD Rotate) ប៉ារ៉ាម៉ែត្រ៖
បង្វិល៖ ROTATE_0, ROTATE_90, ROTATE_180, និង ROTATE_270 ត្រូវគ្នាទៅនឹង 0, 90, 180, និង 270 ដឺក្រេរៀងគ្នា។

ការបត់កញ្ចក់រូបភាព៖ កំណត់ការបត់កញ្ចក់នៃរូបភាពដែលបានជ្រើសរើស។ អ្នកអាចជ្រើសរើសគ្មានកញ្ចក់ កញ្ចក់ផ្តេក កញ្ចក់បញ្ឈរ ឬកញ្ចក់កណ្តាលរូបភាព។
មោឃៈ Paint_SetMirroring(កញ្ចក់ UBYTE) ប៉ារ៉ាម៉ែត្រ៖
កញ្ចក់៖ បង្ហាញពីរបៀបឆ្លុះរូបភាព។ MIRROR_NONE, MIRROR_HORIZO NTAL, MIRROR_VERTICAL, MIRROR_ORIGIN ទាក់ទង​នឹង​គ្មាន​កញ្ចក់, កំហុស​ម៉ែត្រ​ផ្ដេក, កញ្ចក់​បញ្ឈរ និង​អំពី​កញ្ចក់​កណ្តាល​រូបភាព​រៀងៗខ្លួន។

កំណត់ចំណុចនៃទីតាំងបង្ហាញ និងពណ៌នៅក្នុងសតិបណ្ដោះអាសន្ន៖ នេះគឺជាមុខងារ GUI ស្នូល ដំណើរការចំណុចបង្ហាញទីតាំង និងពណ៌នៅក្នុងសតិបណ្ដោះអាសន្ន។
មោឃៈ Paint_SetPixel(UWORD Xpoint, UWORD Ypoint, UWORD Color) ប៉ារ៉ាម៉ែត្រ៖
Xpoint៖ ទីតាំង X នៃចំណុចមួយនៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ចំណុច Y ចំណុច៖ ទីតាំង Y នៃចំណុចមួយនៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ពណ៌៖ បង្ហាញពីពណ៌នៃចំនុច

ពណ៌បំពេញសតិបណ្ដោះអាសន្នរូបភាព៖ បំពេញសតិបណ្ដោះអាសន្នរូបភាពដោយពណ៌ ដែលជាធម្មតាប្រើដើម្បីបញ្ចេញពន្លឺអេក្រង់ទៅជាទទេ។
void Paint_ClearWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yen d, UWORD Color) ប៉ារ៉ាម៉ែត្រ៖
Xstart: កូអរដោនេ x-start នៃ window Ystart: បង្ហាញពីចំនុចចាប់ផ្តើម Y នៃ window Xend: កូអរដោនេ x-end នៃ window Yend: បង្ហាញពីកូអរដោណេ y-end នៃ window Color: បំពេញ Color

គូរចំណុច៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព គូសចំណុចនៅលើ (Xpoint, Ypoint) អ្នកអាចជ្រើសរើសពណ៌ ទំហំចំណុច រចនាប័ទ្មនៃចំណុច។

ទុកជាមោឃៈ Paint_DrawPoint(UWORD Xpoint, UWORD Ypoint, UWORD Color, DOT_PIXEL ធ្វើ

t_Pixel, DOT_STYLE Dot_Style)

ប៉ារ៉ាម៉ែត្រ៖

Xpoint៖ បង្ហាញពីកូអរដោនេ X នៃចំណុចមួយ។

ចំណុច Y៖ បង្ហាញពីកូអរដោនេ Y នៃចំណុចមួយ។

ពណ៌៖ បំពេញពណ៌

Dot_Pixel៖ ទំហំនៃចំនុចដែលផ្តល់លំនាំដើមនៃទំហំប្រាំបីចំណុច

ts

typedef enum {

DOT_PIXEL_1X1 = 1,

// 1 x 1

DOT_PIXEL_2X2 ,

// 2 X 2

DOT_PIXEL_3X3 ,

// 3 X 3

DOT_PIXEL_4X4 ,

// 4 X 4

DOT_PIXEL_5X5 ,

// 5 X 5

DOT_PIXEL_6X6 ,

// 6 X 6

DOT_PIXEL_7X7 ,

// 7 X 7

DOT_PIXEL_8X8 ,

// 8 X 8

} DOT_PIXEL;

Dot_Style៖ ទំហំនៃចំណុចដែលពង្រីកពីកណ្តាលនៃ poi

nt ឬពីជ្រុងខាងឆ្វេងខាងក្រោមនៃចំណុចទៅខាងស្តាំ និងឡើងលើ

typedef enum {

DOT_FILL_AROUND = 1,

DOT_FILL_RIGHTUP,

} DOT_STYLE;

គំនូរបន្ទាត់៖ នៅក្នុងបណ្តុំរូបភាព បន្ទាត់ពី (Xstart, Ystart) ទៅ (Xend, Yend) អ្នកអាចជ្រើសរើសពណ៌ ទទឹងបន្ទាត់ រចនាប័ទ្មបន្ទាត់។

មោឃៈ Paint_DrawLine(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UW

ORD Color, LINE_STYLE Line_Style, LINE_STYLE Line_Style)

ប៉ារ៉ាម៉ែត្រ៖

Xstart៖ កូអរដោនេ x-start នៃបន្ទាត់

Ystart៖ បង្ហាញចំណុចចាប់ផ្តើម Y នៃបន្ទាត់

Xend: x-terminus នៃបន្ទាត់

Yend៖ កូអរដោនេ y-end នៃបន្ទាត់មួយ។

ពណ៌៖ បំពេញពណ៌

Line_width៖ ទទឹងនៃបន្ទាត់ ដែលផ្តល់លំនាំដើមនៃ eig

ទទឹង ht

typedef enum {

DOT_PIXEL_1X1 = 1,

// 1 x 1

DOT_PIXEL_2X2 ,

// 2 X 2

DOT_PIXEL_3X3 ,

// 3 X 3

DOT_PIXEL_4X4 ,

// 4 X 4

DOT_PIXEL_5X5 ,

// 5 X 5

DOT_PIXEL_6X6 ,

// 6 X 6

DOT_PIXEL_7X7 ,

// 7 X 7

DOT_PIXEL_8X8 ,

// 8 X 8

} DOT_PIXEL;

Line_Style៖ រចនាប័ទ្មបន្ទាត់។ ជ្រើសរើសថាតើបន្ទាត់ត្រូវបានភ្ជាប់ជា

ផ្លូវត្រង់ឬដាច់

typedef enum {

LINE_STYLE_SOLID = 0,

LINE_STYLE_DOTTED,

} LINE_STYLE;

គូរចតុកោណកែង៖ នៅក្នុងរូបភាព buffer គូរចតុកោណកែងពី (Xstart, Ystart) ទៅ (Xend, Yend) អ្នកអាចជ្រើសរើសពណ៌ ទទឹងនៃបន្ទាត់ និងថាតើត្រូវបំពេញផ្នែកខាងក្នុងនៃចតុកោណ។

void Paint_DrawRectangle(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yen

d, UWORD Color, DOT_PIXEL Line_width, DRAW_FILL Draw_Fill)

ប៉ារ៉ាម៉ែត្រ៖

Xstart៖ កូអរដោណេ X ចាប់ផ្តើមនៃចតុកោណកែង

Ystart៖ បង្ហាញចំណុចចាប់ផ្តើម Y នៃចតុកោណកែង

Xend: X បញ្ចប់នៃចតុកោណកែង

Yend៖ បញ្ជាក់​កូអរដោណេ y-end នៃ​ចតុកោណកែង

ពណ៌៖ បំពេញពណ៌

Line_width៖ ទទឹង​បួន​ជ្រុង​នៃ​ចតុកោណកែង។ លំនាំដើម ei

ទទឹង ght ត្រូវបានផ្តល់ជូន

typedef enum {

DOT_PIXEL_1X1 = 1,

// 1 x 1

DOT_PIXEL_2X2 ,

// 2 X 2

DOT_PIXEL_3X3 ,

// 3 X 3

DOT_PIXEL_4X4 ,

// 4 X 4

DOT_PIXEL_5X5 ,

// 5 X 5

DOT_PIXEL_6X6 ,

// 6 X 6

DOT_PIXEL_7X7 ,

// 7 X 7

DOT_PIXEL_8X8 ,

// 8 X 8

} DOT_PIXEL;

Draw_Fill៖ បំពេញ ថាតើត្រូវបំពេញផ្នែកខាងក្នុងនៃចតុកោណ

typedef enum {

DRAW_FILL_EMPTY = 0,

DRAW_FILL_FULL,

} DRAW_FILL;

គូររង្វង់៖ នៅក្នុងបណ្តុំរូបភាព គូសរង្វង់កាំជាមួយ (X_Center Y_Center) ជាកណ្តាល។ អ្នកអាចជ្រើសរើសពណ៌ ទទឹងនៃបន្ទាត់ និងថាតើត្រូវបំពេញផ្នែកខាងក្នុងនៃរង្វង់។

មោឃៈ Paint_DrawCircle(UWORD X_Center, UWORD Y_Center, UWORD Radius, UWORD

ពណ៌ DOT_PIXEL Line_width, DRAW_FILL Draw_Fill)

ប៉ារ៉ាម៉ែត្រ៖

X_Center៖ x-coordinate នៃកណ្តាលរង្វង់មួយ។

Y_Center៖ កូអរដោនេ Y នៃ​កណ្តាល​រង្វង់

កាំ៖ បង្ហាញពីកាំនៃរង្វង់

ពណ៌៖ បំពេញពណ៌

Line_width៖ ទទឹង​នៃ​ធ្នូ​ដែល​មាន​លំនាំដើម​គឺ 8 width

typedef enum {

DOT_PIXEL_1X1 = 1,

// 1 x 1

DOT_PIXEL_2X2 ,

// 2 X 2

DOT_PIXEL_3X3 ,

// 3 X 3

DOT_PIXEL_4X4 ,

// 4 X 4

DOT_PIXEL_5X5 ,

// 5 X 5

DOT_PIXEL_6X6 ,

// 6 X 6

DOT_PIXEL_7X7 ,

// 7 X 7

DOT_PIXEL_8X8 ,

// 8 X 8

} DOT_PIXEL;

Draw_Fill៖ បំពេញ ថាតើត្រូវបំពេញខាងក្នុងរង្វង់

typedef enum {

DRAW_FILL_EMPTY = 0,

DRAW_FILL_FULL,

} DRAW_FILL;

សរសេរតួអក្សរ Ascii៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព នៅ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សូមសរសេរ
តួអក្សរ Ascii អ្នកអាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ
ពណ៌ផ្ទៃខាងក្រោយ។
ទុកជាមោឃៈ Paint_DrawChar(UWORD Xstart, UWORD Ystart, const char Ascii_Char, sFO NT* Font, UWORD Color_Foreground, UWORD Color_Background) ប៉ារ៉ាម៉ែត្រ៖
Xstart: x-coordinate នៃ vertex ខាងឆ្វេងនៃតួអក្សរមួយ Ystart: កូអរដោនេ Y នៃ font vertex ខាងឆ្វេង Ascii_Char: បង្ហាញពីតួអក្សរ Ascii Font: Ascii visual character library នៅក្នុង Fonts folder ផ្តល់នូវ Fonts ខាងក្រោម៖
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: ពណ៌ពុម្ពអក្សរ Color_Background: បង្ហាញពណ៌ផ្ទៃខាងក្រោយ

សរសេរខ្សែអក្សរអង់គ្លេស៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរ a
ខ្សែអក្សរអង់គ្លេស អាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ផ្ទៃខាងមុខពុម្ពអក្សរ
ពណ៌, ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
void Paint_DrawString_EN(UWORD Xstart, UWORD Ystart, const char * pString, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background) ប៉ារ៉ាម៉ែត្រ៖
Xstart: x-coordinate នៃ vertex ខាងឆ្វេងនៃតួអក្សរ Ystart: កូអរដោនេ Y នៃ font vertex vertex PSTring: string, string គឺជាទ្រនិចពុម្ពអក្សរ៖ Ascii visual character library នៅក្នុង Fonts folder ផ្តល់នូវ Fonts ខាងក្រោម៖
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: ពណ៌ពុម្ពអក្សរ Color_Background: បង្ហាញពណ៌ផ្ទៃខាងក្រោយ

សរសេរខ្សែអក្សរចិន៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរអក្សរចិនមួយជួរ អ្នកអាចជ្រើសរើសពុម្ពអក្សរតួអក្សរបំប្លែង GB2312 ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
ទុកជាមោឃៈ Paint_DrawString_CN(UWORD Xstart, UWORD Ystart, const char * pString, cFONT* font, UWORD Color_Foreground, UWORD Color_Background) ប៉ារ៉ាម៉ែត្រ៖
Xstart: x-coordinate នៃ vertex ខាងឆ្វេងនៃតួអក្សរ Ystart: កូអរដោនេ Y នៃ font vertex vertex PSTring: string, string is a pointer Font: GB2312 encoding character បណ្ណាល័យពុម្ពអក្សរ, ក្នុង fonts folder ផ្តល់នូវ Fonts ខាងក្រោម៖
Font12CN: ពុម្ពអក្សរ ASCII 11*21, ពុម្ពអក្សរចិន 16*21 Font24CN: ASCII font24 *41, ពុម្ពអក្សរចិន 32*41 Color_Foreground: ពណ៌ពុម្ពអក្សរ Color_Background: បង្ហាញពណ៌ផ្ទៃខាងក្រោយ

សរសេរលេខ៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរខ្សែអក្សរ
នៃលេខ អ្នកអាចជ្រើសរើសបណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ
ពណ៌ផ្ទៃខាងក្រោយ។
void Paint_DrawNum(UWORD Xpoint, UWORD Ypoint, double Number, sFONT* Fon t, UWORD Digit, UWORD Color_Foreground, UWORD Color_Background) ប៉ារ៉ាម៉ែត្រ៖
Xpoint៖ កូអរដោនេ x នៃចំនុចកំពូលខាងឆ្វេងនៃតួអក្សរ Y ចំណុច៖ កូអរដោនេ Y នៃចំនុចកំពូលខាងឆ្វេងនៃលេខពុម្ពអក្សរ៖ បង្ហាញពីលេខដែលបានបង្ហាញ ដែលអាចជាខ្ទង់ទសភាគ៖ វាជាលេខទសភាគ ពុម្ពអក្សរ៖ បណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii, នៅក្នុងថត Fonts ផ្តល់នូវ Fonts ខាងក្រោម៖
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: ពណ៌ពុម្ពអក្សរ Color_Background: បង្ហាញពណ៌ផ្ទៃខាងក្រោយ

សរសេរលេខដោយទសភាគ៖ នៅ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង សរសេរខ្សែអក្សរ
លេខដែលមានទសភាគ អ្នកអាចជ្រើសរើសកូដ Ascii តួអក្សរដែលមើលឃើញ ពុម្ពអក្សរផ្ទៃខាងមុខ
ពណ៌, ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ
មោឃៈ Paint_DrawFloatNum(UWORD Xpoint, UWORD Ypoint, លេខទ្វេ, UBYTE Decimal_Point, sFONT* Font, UWORD Color_Foreground, UWORD Color_Backgroun d); ប៉ារ៉ាម៉ែត្រ៖
Xstart: កូអរដោនេ X នៃចំនុចកំពូលខាងឆ្វេងនៃតួអក្សរ Ystart: Y កូអរដោនេនៃចំនុចកំពូលខាងឆ្វេងនៃ font Number: លេខដែលបានបង្ហាញ ដែលត្រូវបានរក្សាទុកជាពីរប្រភេទនៅទីនេះ Decimal_Point: បង្ហាញចំនួនខ្ទង់បន្ទាប់ពីខ្ទង់ទសភាគ អក្សរ int: បណ្ណាល័យពុម្ពអក្សរតួអក្សរដែលមើលឃើញកូដ Ascii ពុម្ពអក្សរខាងក្រោមត្រូវបានផ្តល់ជូននៅក្នុងថតពុម្ពអក្សរ៖
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: font color_Background: background color

ពេលវេលាបង្ហាញ៖ នៅក្នុងសតិបណ្ដោះអាសន្នរូបភាព ប្រើ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង ពេលវេលាបង្ហាញ អ្នក
អាចជ្រើសរើសពុម្ពអក្សរដែលមើលឃើញ Ascii ពណ៌ផ្ទៃខាងមុខពុម្ពអក្សរ ពណ៌ផ្ទៃខាងក្រោយពុម្ពអក្សរ។
ទុកជាមោឃៈ Paint_DrawTime(UWORD Xstart, UWORD Ystart, PAINT_TIME *pTime, sFONT* Font, UWORD Color_Background, UWORD Color_Foreground) ប៉ារ៉ាម៉ែត្រ៖
Xstart៖ កូអរដោនេ x នៃចំនុចកំពូលខាងឆ្វេងនៃតួអក្សរ Ystart៖ កូអរដោនេ Y នៃចំនុចកំពូលខាងឆ្វេងរបស់ពុម្ពអក្សរ PTime៖ ពេលវេលាបង្ហាញ នៅទីនេះកំណត់រចនាសម្ព័ន្ធពេលវេលាដ៏ល្អមួយ ដរាបណាម៉ោង នាទី និងប៊ីតនៃទិន្នន័យទៅប៉ារ៉ាម៉ែត្រ ; ពុម្ពអក្សរ៖ បណ្ណាល័យតួអក្សរដែលមើលឃើញ Ascii នៅក្នុងថតពុម្ពអក្សរផ្តល់នូវពុម្ពអក្សរខាងក្រោម៖
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: ពណ៌ពុម្ពអក្សរ Color_Background: បង្ហាញពណ៌ផ្ទៃខាងក្រោយ

បង្ហាញរូបភាព៖ នៅ (Xstart Ystart) ជាចំនុចកំពូលខាងឆ្វេង បង្ហាញរូបភាពដែលមានទទឹង W_Image និងកម្ពស់គឺ H_Image;
ទុកជាមោឃៈ Paint_DrawImage(const unsigned char *image, UWORD xStart, UWORD yStart, UWORD W_Image, UWORD H_Image) ប៉ារ៉ាម៉ែត្រ៖
រូបភាព៖ អាសយដ្ឋានរូបភាព ចង្អុលទៅព័ត៌មានរូបភាពដែលអ្នកចង់បង្ហាញ
Xstart៖ កូអរដោនេ X នៃចំនុចកំពូលខាងឆ្វេងនៃតួអក្សរ Ystart: កូអរដោនេ Y នៃចំនុចកំពូលខាងឆ្វេងនៃពុម្ពអក្សរ W_Image: ទទឹងរូបភាព H_Image: កម្ពស់រូបភាព

VisionFive ២
គំរូអាដាប់ធ័រ
0.96inch LCD Module 1.14inch LCD Module 1.28inch LCD Module 1.3inch LCD Module 1.54inch LCD Module 1.8inch LCD Module 2inch LCD Module 2.4inch LCD Module
ការតភ្ជាប់ផ្នែករឹង

ការតភ្ជាប់ VisionFive2 Pin
អេក្រង់ LCD VCC GND DIN CLK
CS DC RST BL

VisionFive2 Board Pin No. 3.3V GND 19 23 24 22 13 12

ដំឡើងបណ្ណាល័យដែលត្រូវគ្នា។

apt-get install pip pip ដំឡើង VisionFive.gpio apt-get install python3-numpy apt-get install python3-pil

ទាញយកសាកល្បង
apt-get ដំឡើង p7zip-full wget https://www.waveshare.com/w/upload/e/e9/LCD_Module_code.7z 7z x LCD_Module_code.7z -o./LCD_Module_code cd LCD_Module_code/VisionFive/python/exampលេ/

ដំណើរការការបង្ហាញដែលត្រូវគ្នាយោងទៅតាមអេក្រង់ដែលអ្នកបានទិញ
Python3 0.lcd_test.py 96 3inch1_lcd_test.py python14 python3 1pch28_lcd_test.py python3 python1 python3 Pest.py Python3 1inch54_lcd_test.py
ធនធាន
ឯកសារ
សំណុំទិន្នន័យ IL9341
កម្មវិធី
រូបភាព 2Lcd
កូដសាកល្បង
កូដសាកល្បង
គំនូរ 3D
2.4 អ៊ីញ ម៉ូឌុល LCD គំនូរ 3D
គំនូរ 2D
2.4 អ៊ីញ ម៉ូឌុល LCD គំនូរ 2D
សំណួរគេសួរញឹកញាប់
'សំណួរ៖'1.អេក្រង់ LCD ទទេនៅពេលប្រើជាមួយ Raspberry Pi? ចម្លើយ៖
ក) ត្រូវប្រាកដថាអ្នកបានបើកចំណុចប្រទាក់ SPI ខ) ពិនិត្យមើលលទ្ធផលនៃ BL pin ប្រសិនបើវាមិនមានតម្លៃទេ សូមព្យាយាមផ្តាច់វា។

'សំណួរ៖'2.របៀបផ្លាស់ប្តូរទិសបង្ហាញ
ចំលើយ៖ ប្រសិនបើអ្នកប្រើលេខកូដ C អ្នកអាចប្រើមុខងារ Paint_SetRotate(Rotate) ដើម្បីកំណត់ទិសបង្ហាញ មានតែ 0°, 90°, 180° និង 270° ប៉ុណ្ណោះ។
ប្រសិនបើអ្នកប្រើកូដ Python អ្នកអាចប្រើមុខងារ rotate (បង្វិល) ដើម្បីផ្លាស់ប្តូរទិសនៅមុំណាមួយ។

'សំណួរ៖'3.បណ្ណាល័យរូបភាព Python
ចម្លើយ៖ ប្រសិនបើអ្នកទទួលបានកំហុសបណ្ណាល័យនៅពេលដំណើរការ python example សូមព្យាយាមដំឡើងបណ្ណាល័យ PIL ដោយពាក្យបញ្ជា៖ sudo apt-get install python-imaging

'សំណួរ៖'4.ហេតុអ្វីបានជាអេក្រង់មិនបង្ហាញត្រឹមត្រូវពេលភ្ជាប់ទៅ Arduino?
ចម្លើយ៖ នៅពេលប្រើ Arduino សូមប្រាកដថាវាត្រូវបានដោតចូលទៅក្នុងការផ្គត់ផ្គង់ថាមពល 5v ។

'សំណួរ៖' ៥. ការប្រើការគ្រប់គ្រង Raspberry Pi មិនត្រឹមត្រូវអាចបណ្តាលឱ្យ?
ចំលើយ៖ ប្រសិនបើដំណើរការ wiringPi routine គឺធម្មតា នោះការដំណើរការ python ឬ BCM2835 អាចធ្វើឱ្យអេក្រង់មិនដំណើរការឡើងវិញជាធម្មតា ព្រោះបណ្ណាល័យ bcm2835 គឺជាមុខងារបណ្ណាល័យរបស់ Raspberry Pi cpu chip ហើយស្រទាប់ខាងក្រោមគឺសម្រាប់ដំណើរការការចុះឈ្មោះដោយផ្ទាល់។ ខណៈពេលដែលស្រទាប់ខាងក្រោមនៃបណ្ណាល័យ wiringPi និង python ត្រូវបានអាន និងសរសេរដោយការអាន និងការសរសេរ។ ឧបករណ៍ file នៃប្រព័ន្ធលីនុចដំណើរការឧបករណ៍ ដែលអាចបណ្តាលឱ្យច្រក GPIO ដំណើរការខុសប្រក្រតី។ ការចាប់ផ្តើម Raspberry Pi ឡើងវិញអាចដោះស្រាយវាបានយ៉ាងល្អឥតខ្ចោះ។

គាំទ្រ
ប្រសិនបើអ្នកត្រូវការជំនួយផ្នែកបច្ចេកទេស សូមចូលទៅកាន់ទំព័រ ហើយបើកសំបុត្រ។

ឯកសារ/ធនធាន

WAVESHARE IL9341 ម៉ូឌុលអេក្រង់ LCD TFT 2.4 អ៊ីញ [pdf] សេចក្តីណែនាំ
IL9341 2.4inch LCD TFT Display Module, IL9341, 2.4inch LCD TFT Display Module, LCD TFT Display Module, TFT Display Module, Display Module, Module

ឯកសារយោង

ទុកមតិយោបល់

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