
Məhsul haqqında məlumat
- Əməliyyat həcmitage: 3.3V/5V (Lütfən, cilddən əmin oluntage düzgün funksionallıq üçün ardıcıllıq)
- İnterfeys: SPI
- LCD növü: IPS
- Sürücü: ST7789V
- Qətnamə: 240(V) x 320 (H) RGB
- Ekran ölçüsü: 30.60H x 40.80V mm
- Piksel ölçüsü: 0.0975H x 0.0975V mm
- Ölçü: 58 x 35 mm
- Q: Bu LCD modulu üçün dəstəklənən platformalar hansılardır?
- A: Bu LCD modulu məsələnampRaspberry Pi, STM32 və Arduino üçün les.
Giriş
Bu məhsul Raspberry Pi, STM32, Arduino examples

Xüsusiyyət
- 2 * 240 qətnamə ilə 320 düymlük IPS displey modulu olaraq, rabitə üçün SPI interfeysindən istifadə edir. LCD-də nöqtələr, xətlər, dairələr və düzbucaqlılar çəkmək və ingilis, çin, eləcə də şəkilləri göstərmək üçün istifadə edilə bilən əsas funksiyaları olan daxili nəzarətçi var.
- Biz tam dəstəkləyən Raspberry Pi demoları (BCM2835 kitabxanası, WiringPi kitabxanası və python demoları), STM32 demoları və Arduino demoları təqdim edirik.
Spesifikasiyalar
- Əməliyyat həcmitage: 3.3V/5V (Lütfən, enerji təchizatının voltage və məntiq cildtage ardıcıldır, əks halda düzgün işləməyəcək)
- İnterfeys: SPI
- LCD növü: IPS
- Sürücü: ST7789V
- Qətnamə: 240(V) x 320 (H) RGB
- Ekran ölçüsü: 30.60(H)x 40.80(V)mm
- Piksel ölçüsü: 0.0975(H)x 0.0975(V)mm
- Ölçü: 58 x 35 (mm)
İnterfeys təsviri
Raspberry Pi aparat bağlantısı
Aşağıdakı cədvələ uyğun olaraq LCD-ni 8PIN kabel vasitəsilə Raspberry Pi-yə qoşun
Pin başlığından və ya PH2.0 8PIN interfeysindən istifadə edin, aşağıdakı cədvələ uyğun olaraq qoşulmalısınız
Raspberry Pi-yə qoşulun

2 düymlük LCD yuxarıdakı cədvələ uyğun olaraq Raspberry Pi-yə qoşula bilən PH2.0 8PIN interfeysindən istifadə edir: (Lütfən, pin tərifi cədvəlinə uyğun qoşulun. Şəkildəki naqillərin rəngi yalnız istinad üçündür və faktiki rəng üstünlük təşkil edəcək.)

STM32 aparat bağlantısı
keçmişample təmin etdiyimiz STM32F103RBT6-a əsaslanır və təqdim edilən əlaqə üsulu da STM32F103RBT6-nın müvafiq pinidir. Proqramı köçürmək lazımdırsa, lütfən, faktiki pinlə əlaqə saxlayın.
STM32F103ZET əlaqə pin yazışmaları

Şirkətimiz tərəfindən hazırlanmış XNUCLEO-F103RB inkişaf lövhəsini keçmiş olaraq götürünample, əlaqə aşağıdakı kimidir:

Arduino aparat bağlantısı
Arduino UNO Əlaqə pin yazışmaları

Bağlantı diaqramı aşağıdakı kimidir (böyütmək üçün klikləyin):

Avadanlıq təsviri
LCD & Nəzarətçi
LCD hər piksel üçün 12-bit, 16-bit və 18-bit giriş rəng formatlarını, yəni RGB444, RGB565 və RGB666 üç rəng formatını dəstəkləyir, bu demo RGB565 rəng formatından istifadə edir, bu da çox istifadə olunan RGB formatıdır.
Əksər LCD kontrollerlər üçün nəzarətçinin rabitə rejimi adətən 8080 paralel interfeys, üç telli SPI, dörd telli SPI və digər rabitə üsulları ilə konfiqurasiya edilə bilər. Bu LCD dörd telli SPI rabitə interfeysindən istifadə edir ki, bu da GPIO portunu xeyli qənaət edə bilər və rabitə sürəti daha sürətli olacaqdır.
Rabitə Protokolu

Qeyd: Ənənəvi SPI protokolundan fərqli olaraq, cihazın yalnız ekran tələbi olduğundan, quldan master-a olan məlumat xətti gizlidir.
- RESX: sıfırlama pin, modulu gücləndirərkən aşağı olmalıdır və digər vaxtlarda daha yüksək olmalıdır;
- CSX: qul çipi seçin, CS aşağı olduqda, çip işə salınır.
- D/CX: data/komanda idarəetmə pin, DC = 0 olduqda, əmr yazın, DC = 1 olduqda, məlumat yazın
- SDA: RGB məlumatlarını ötürmək üçün məlumat pin, SPI interfeysinin MOSI pin kimi işləyir;
- SCL SPI interfeysinin SCLK sancaqları kimi işləyir.
- SPI rabitəsi CPHA və CPOL tərəfindən birləşdirilən məlumat ötürmə vaxtına malikdir.
- CPOL boş vəziyyətdə serial sinxron saatın səviyyəsini müəyyən edir. CPOL = 0 olduqda, səviyyə aşağıdır. Bununla belə, CPOL ötürülməyə çox az təsir göstərir.
- CPHA verilənlərin ardıcıl sinxron saatın birinci saat kənarında və ya ikinci saat kənarında toplandığını müəyyən edir; CPHL = 0 olduqda məlumatlar ilk saat kənarında toplanır.
- 4 SPI rabitə rejimi var. SPI0 adətən istifadə olunur, burada CPHL = 0, CPOL = 0.
Raspberry Pi ilə işləmək
SPI interfeysini aktivləşdirin
PS: Bullseye filialının sistemindən istifadə edirsinizsə, “apt-get”i “apt” olaraq dəyişdirməlisiniz, Bullseye filialının sistemi yalnız Python3-ü dəstəkləyir.
- Terminalı açın və konfiqurasiya səhifəsinə daxil olmaq üçün əmrdən istifadə edin.

Raspberry Pi-ni yenidən başladın
- sudo yenidən başladın
Lütfən, SPI-nin digər cihazlar tərəfindən tutulmadığından əmin olun, siz/boot/config.txt ortasında yoxlaya bilərsiniz.
Kitabxanaları quraşdırın
BCM2835 kitabxanalarını quraşdırın

WiringPi kitabxanalarını quraşdırın

Python kitabxanalarını quraşdırın

Ex yükləyinamples
Raspberry Pi terminalını açın və aşağıdakı əmri yerinə yetirin

Demo kodlarını işə salın
- Əvvəlcə RaspberryPi qovluğuna (demo kodları) daxil olun və terminalda əmrləri yerinə yetirin
C kodları
- Demo kodları yenidən tərtib edin

- Bütün ekranların test proqramı müvafiq ölçü daxil edilməklə birbaşa çağırıla bilər
- sudo ./əsas ekran ölçüsü
LCD-dən asılı olaraq aşağıdakı əmrlərdən biri daxil edilməlidir:

piton
- Python proqram qovluğuna daxil olun və ls -l əmrini yerinə yetirin

Bütün ekranlar üçün test proqramları ola bilər viewed, ölçüyə görə sıralanıb:
- 0inch96_LCD_test.py: 0.96inch LCD test proqramı
- 1inch14_LCD_test.py: 1.14inch LCD test proqramı
- 1inch28_LCD_test.py: 1.28inch LCD test proqramı
- 1inch3_LCD_test.py: 1.3inch LCD test proqramı
- 1inch47_LCD_test.py: 1.47inch LCD test proqramı
- 1inch54_LCD_test.py: 1.54inchLCD test proqramı
- 1inch8_LCD_test.py: 1.8inch LCD test proqramı
- 2inch_LCD_test.py: 2inch LCD test proqramı
- 2inch4_LCD_test.py: 2inch4 LCD test proqramı
Sadəcə ekrana uyğun proqramı işə salın, proqram python2/3-ü dəstəkləyir

FBCP Portinqi
PS: FBCP hazırda 64 bitlik Raspberry Pi sistemi ilə uyğun gəlmir, 32 bitlik sistemdən istifadə etmək tövsiyə olunur.
- Framebuffer tam kadr məlumatlarını ehtiva edən yaddaş buferindən video göstərmə cihazını idarə etmək üçün video çıxış cihazından istifadə edir. Sadə dillə desək, displey məzmununu saxlamaq üçün yaddaş sahəsi istifadə olunur və yaddaşdakı məlumatların dəyişdirilməsi ilə ekran məzmunu dəyişdirilə bilər.
- Github-da açıq mənbəli bir layihə var: fbcp-ili9341. Digər fbcp layihələri ilə müqayisədə, bu layihə 60 kadr / s-ə qədər sürət əldə etmək üçün qismən yeniləmə və DMA istifadə edir
Sürücüləri yükləyin

Metod 1: Skriptdən istifadə edin (tövsiyə olunur)
- Burada istifadəçilərə fbcp-dən tez istifadə etməyə və öz ekranlarına uyğun olaraq müvafiq əmrləri icra etməyə imkan verən bir neçə skript yazmışıq.
- Əgər skriptdən istifadə edirsinizsə və onu dəyişdirməyə ehtiyac yoxdursa, aşağıdakı ikinci metodu nəzərdən qaçıra bilərsiniz.
Qeyd: Skript müvafiq /boot/config.txt və /etc/rc.local-ı əvəz edəcək və istifadəçiyə lazım olarsa, müvafiq faylın ehtiyat nüsxəsini çıxarın. files əvvəlcədən.

Metod 2: Manual Konfiqurasiya
Ətraf Mühitin Konfiqurasiyası
Raspberry Pi-nin vc4-kms-v3d fbcp-nin uğursuzluğuna səbəb olacaq, ona görə də onu fbcp-də quraşdırmadan əvvəl vc4-kms-v3d-ni bağlamalıyıq.
- sudo nano /boot/config.txt
Sadəcə aşağıdakı şəkilə uyğun ifadəni bloklayın.

Sonra yenidən yükləmə tələb olunur.
- sudo yenidən başladın
Kompilyasiya edin və işləyin

İstifadə etdiyiniz LCD Moduluna uyğun olaraq onu özünüz dəyişdirin, yuxarıda cmake [seçimlər] ..

Avtomatik başlamaq üçün qurun
- sudo cp ~/Waveshare_fbcp/buil
- d/fbcp /usr/local/bin/fbcp
- sudo nano /etc/rc.local

- 0-dan çıxmazdan əvvəl fbcp& əlavə edin. Nəzərə alın ki, arxa fonda işləmək üçün “&” əlavə etməlisiniz, əks halda sistem başlaya bilməyəcək.
Ekran qətnaməsini təyin edin
/boot/config.txt-də istifadəçi interfeysinin ekran ölçüsünü təyin edin file.
- sudo nano /boot/config.txt
Sonra config.txt-in sonuna aşağıdakı sətirləri əlavə edin.

Yuxarıdakı hdmi_cvt=[seçimləri] istifadə etdiyiniz LCD Moduluna uyğun olaraq dəyişdirin

Və sonra sistemi yenidən başladın
- sudo yenidən başladın
Sistemi yenidən işə saldıqdan sonra Raspberry Pi OS istifadəçi interfeysi görünəcək

API Təsviri
- RaspberryPi seriyası bir sıra proqramları paylaşa bilər, çünki onların hamısı quraşdırılmış sistemlərdir və uyğunluq nisbətən güclüdür.
- Proqram alt qatlı aparat interfeysinə, orta səviyyəli LCD ekran sürücüsünə və yuxarı qat tətbiqinə bölünür;
Avadanlıq interfeysi
- Aşağı səviyyəli inkapsulyasiyanı həyata keçirdik, daxili tətbiqetməni bilmək lazımdırsa, yoxlamaq üçün müvafiq qovluğa gedə bilərsiniz, çünki aparat platforması və daxili tətbiq fərqlidir.
- RaspberryPi\c\lib\Config kataloqunda olan təriflərə baxmaq üçün DEV_Config.c(.h) faylını aça bilərsiniz.

Məlumat növü:

Modulun işə salınması və çıxması

GPIO oxuyur və yazır:
- void DEV_Digital_Write(UWORD Pin, UBYTE Dəyəri);
- UBYTE DEV_Digital_Read(UWORD Pin);
SPI yazma məlumatları:
- etibarsız DEV_SPI_WriteByte(UBYTE Dəyəri);
Üst tətbiq
Əgər sizə şəkil çəkmək və ya Çin və İngilis simvollarını göstərmək lazımdırsa, biz burada RaspberryPi\c\lib\GUI\GUI_Paint.c(.h) kataloqunda bəzi qrafiklərin işlənməsi ilə bağlı bəzi əsas funksiyaları təqdim edirik.

Şriftləri RaspberryPi\c\lib\Fonts qovluğunda tapmaq olar

- Yeni Şəkil Xüsusiyyətləri: Yeni şəkil buferi yaradın, bu xüsusiyyətə şəkil buferinin adı, eni, hündürlüyü, çevirmə bucağı və rəng daxildir.

- Şəkil buferini seçin: Seçmənin məqsədi ondan ibarətdir ki, siz çoxlu şəkil atributları yarada bilərsiniz, bir neçə şəkil buferi ola bilər, siz yaratdığınız hər bir şəkli seçə bilərsiniz.

- Şəklin fırlanması: Seçilmiş şəklin fırlanma bucağını təyin edin, tercihen Paint_SelectImage() funksiyasından sonra 0, 90, 180, 270 fırlatmağı seçə bilərsiniz.

- Şəkil güzgüsü çevrilməsi: Seçilmiş şəklin güzgü çevrilməsini təyin edin. Siz heç bir güzgü, üfüqi güzgü, şaquli güzgü və ya görüntü mərkəzi güzgü seçə bilməzsiniz.

- Buferdə ekran mövqeyinin və rəngin nöqtələrini təyin edin: burada əsas GUI funksiyası, emal nöqtələri buferdəki mövqeyi və rəngi göstərir.

- Şəkil buferinin rəngi: Şəkil buferini rənglə doldurur, adətən ekranı boş yerə yandırmaq üçün istifadə olunur.

- Şəkil buferində müəyyən bir pəncərənin dolğun rəngi: pəncərənin müəyyən bir rənglə doldurulmuş şəkil bufer hissəsi, adətən ekranı boş vəziyyətə gətirmək üçün istifadə olunur, tez-tez vaxtı göstərmək üçün istifadə olunur, ekranın son saniyəsini təzələyir.

- Çəkmə nöqtəsi: Şəkil buferində (Xpoint, Ypoint) üzərində nöqtələr çəkin, siz nöqtənin rəngini, ölçüsünü, üslubunu seçə bilərsiniz.

- Xətt çəkmək: Şəkil buferində (Xstart, Ystart) -dən (Xend, Yend) xətt çəkin, xəttin rəngini, enini və üslubunu seçə bilərsiniz.

- Düzbucaqlı çəkin: Şəkil buferində (Xstart, Ystart) -dən (Xend, Yend) düzbucaqlı çəkin, siz rəngini, xəttin enini, düzbucaqlının içini doldurub-doldurmayacağınızı seçə bilərsiniz.

- Dairə çəkin: Şəkil buferində mərkəz olaraq (X_Center Y_Center) Radius dairəsi çəkin. Rəngi, xəttin enini və dairənin içini doldurub-doldurmayacağınızı seçə bilərsiniz.

- Ascii simvolunu yazın: Şəkil buferində sol təpə kimi (Xstart Ystart) istifadə edin, Ascii simvolu yazın, Ascii vizual simvol kitabxanasını, şriftin ön plan rəngini, fontun fon rəngini seçə bilərsiniz.

- İngilis sətirini yazın: Şəkil buferində sol təpə kimi (Xstart Ystart) istifadə edin, ingilis simvollarından ibarət sətir yazın, Ascii vizual simvol kitabxanasını, şriftin ön plan rəngini, fontun fon rəngini seçə bilərsiniz.

- Çin sətirini yazın: şəkil buferində sol təpə kimi (Xstart Ystart) istifadə edin, Çin simvollarından ibarət sətir yazın, siz GB2312 kodlaşdırmasının simvol şriftini, fontun ön plan rəngini və font fon rəngini seçə bilərsiniz.

- Nömrələri yazın: Şəkil buferində sol təpə kimi (Xstart Ystart) istifadə edin, rəqəmlər sətrini yazın, Ascii vizual simvol kitabxanasını, şriftin ön plan rəngini, şriftin fon rəngini seçə bilərsiniz.

- Göstərmə vaxtı: şəkil buferində sol təpə kimi (Xstart Ystart) istifadə edin, göstərmə vaxtı, Ascii vizual simvol şriftini, şriftin ön plan rəngini, fontun fon rəngini seçə bilərsiniz.
- Yerli bmp şəklini oxuyun və onu önbelleğe yazın.
Raspberry Pi kimi Linux əməliyyat sistemləri üçün şəkilləri oxuya və yaza bilərsiniz. Raspberry Pi üçün, kataloqda: RaspberryPi\c\lib\GUI\GUI_BMPfile.c(.h).

İstifadəçilər üçün Test Kodu
Raspberry Pi üçün, kataloqda: RaspberryPi\c\examples, bütün test kodu üçün;

0.96 düymlük LCD test proqramını işə salmaq lazımdırsa, əsas demonu işləyərkən parametr kimi 0.96 əlavə etməlisiniz.
Linux əmr rejimində aşağıdakı kimi yenidən icra edin:
- təmiz etmək
- etmək
- sudo ./main 0.96
Python (Raspberry Pi üçün)
- Python və python3 ilə işləyir.
- Python üçün onun zəngləri C qədər mürəkkəb deyil.
- Raspberry Pi: RaspberryPi\python\lib\

lcdconfig.py
- Modulun işə salınması və çıxması

GPIO oxuyur və yazır:
- def digital_write(pin, dəyər)
- def digital_read(pin)
SPI yazma məlumatları.
- def spi_writebyte(məlumat)
xxx_LCD_test.py (xxx ölçüsü göstərir, əgər 0.96 düymlük LCD olarsa, 0inch96_LCD_test.py və s.)
python aşağıdakı kataloqdadır:
Raspberry Pi: RaspberryPi\python\məsamples\

Python versiyanız python2-dirsə və 0.96 düymlük LCD test proqramını işə salmalısınızsa, onu linux əmr rejimində aşağıdakı kimi yenidən icra edin:
- sudo python 0inch96_LCD_test.py
Python versiyanız python3-dürsə və 0.96 düymlük LCD test proqramını işə salmalısınızsa, Linux əmr rejimində aşağıdakıları yenidən yerinə yetirin:
- sudo python3 0inch96_LCD_test.py
Rotasiya Parametrləri haqqında
Əgər python proqramında ekranın fırlanmasını təyin etmək lazımdırsa, onu im_r= image1.rotate(270) ifadəsi ilə təyin edə bilərsiniz.
- im_r= image1.rotate(270)
Fırlanma effekti, əvvəlki kimi 1.54 götürünample, sıra 0°, 90°, 180°, 270°-dir

GUI funksiyaları
Python-da şəkil kitabxanası PIL rəsmi kitabxana linki var, o, C kimi məntiqi təbəqədən kod yazmağa ehtiyac duymur və təsvirin işlənməsi üçün birbaşa şəkil kitabxanasına zəng edə bilər. Aşağıdakılar əvvəlki kimi 1.54 düymlük LCD alacaqample, biz demonun qısa təsvirini təqdim edirik.
O, şəkil kitabxanasından istifadə etməli və kitabxananı quraşdırmalıdır
- sudo apt-get quraşdırma python3-pil
Və sonra kitabxananı idxal edin
- PIL-dən Image,ImageDraw,ImageFont idxalı.
Onların arasında Image əsas kitabxana, ImageDraw rəsm funksiyası və ImageFont mətn funksiyasıdır.
Şəkil üzərində rəsm çəkmək, yazmaq və digər funksiyaları asanlaşdırmaq üçün şəkil önbelleğini təyin edin
- şəkil1 = Şəkil.yeni("RGB", (disp.en, disp.hündürlük), "AĞ")
Birinci parametr, bir bit dərinliyin bitmapını göstərmək üçün "1" olaraq təyin olunan təsvirin rəng dərinliyini təyin edir. İkinci parametr, təsvirin enini və hündürlüyünü təyin edən bir tupledir. Üçüncü parametr "AĞ" olaraq təyin olunan buferin standart rəngini təyin edir.
Şəkil1 əsasında bütün rəsm əməliyyatlarının burada yerinə yetiriləcəyi rəsm obyekti yaradın.
- çəkmək = ImageDraw.Draw(şəkil1)
Bir xətt çəkin.
- draw.line([(20, 10),(70, 60)], fill = “RED”, eni = 1)
Birinci parametr (0, 0) ilə başlayan və (127,0) ilə bitən dörd elementli tupledir. Bir xətt çəkin. Doldur =”0″ xəttin rənginin ağ olduğunu bildirir.
Bir düzbucaqlı çəkin
- draw.rectangle([(20,10),(70,60)],fill = “AĞ”, kontur=”QARA”)
Birinci arqument dörd elementdən ibarət dəstdir. (20,10) düzbucaqlının yuxarı sol küncündəki koordinat qiyməti, (70,60) isə düzbucaqlının aşağı sağ küncündəki koordinat qiymətidir. Doldur =” WHITE” içəridə QARA, kontur=”QARA” isə konturun rənginin qara olduğunu bildirir.
Bir dairə çəkin
- çəkmək.arc((150,15,190,55),0, 360, doldur =(0,255,0)
Kvadratda yazılmış dairə çəkin, birinci parametr kvadratın yuxarı sol künc təpəsi kimi (4, 150), kvadratın aşağı sağ künc təpəsi kimi (15, 190) olmaqla, 55 elementdən ibarət dəstdir. düzbucaqlı çərçivənin səviyyəli median xətti 0 dərəcə bucaqdır, ikinci parametr başlanğıc bucağını, üçüncü parametr bitmə bucağını, fill = 0 isə xəttin rənginin ağ olduğunu göstərir. Əgər rəqəm koordinasiyaya görə kvadrat deyilsə, ellips alacaqsınız. Qövs funksiyasından başqa, siz bərk dairə çəkmək üçün akkord funksiyasından da istifadə edə bilərsiniz.
- çəkmək.ellips((150,65,190,105), doldurma = 0)
Birinci parametr, əhatə edən düzbucaqlının koordinasiyasıdır. İkinci və üçüncü parametrlər dairənin başlanğıc və son dərəcələridir. Dördüncü parametr dairənin dolğun rəngidir.
Xarakter.
ImageFont modulu idxal edilməli və yaradılmalıdır:
- Font1 = ImageFont.truetype(“../Font/Font01.ttf”,25)
- Font2 = ImageFont.truetype(“../Font/Font01.ttf”,35)
- Font3 = ImageFont.truetype(“../Font/Font02.ttf”,32)
Siz Windows və ya ttc formatında olan digər şriftlərdən istifadə edə bilərsiniz.
Qeyd: Hər bir simvol kitabxanasında müxtəlif simvollar var; Bəzi simvollar göstərilə bilmirsə, istifadə olunan kodlaşdırma dəstinə müraciət etmək tövsiyə olunur. İngilis simvollarını çəkmək üçün birbaşa şriftlərdən istifadə edə bilərsiniz; Çin simvolları üçün u simvolu əlavə etməlisiniz:
- draw.text((40, 50), 'WaveShare', fill = (128,255,128),font=Font2)
- text= u”微雪电子”
- draw.text((74, 150),text, fill = “WHITE”,font=Font3)
Birinci parametr, sol təpəsində (2, 40) olan 50 elementdən ibarət dəstdir, şrift Font2, dolgu isə şriftin rəngidir. Siz birbaşa fill = “AĞ” edə bilərsiniz, çünki adi rəng dəyəri artıq müəyyən edilib. Əlbəttə ki, siz fill = (128,255,128) də istifadə edə bilərsiniz, mötərizələr üç RGB rənginin dəyərlərinə uyğundur ki, siz dəqiq idarə edə biləsiniz. istədiyiniz rəng. İkinci cümlə Font3 istifadə edərək Micro Snow Electronics-i göstərir, şrift rəngi ağdır.
yerli şəkli oxuyun
- şəkil = Şəkil.açıq('../pic/LCD_1inch28.jpg')
Parametr görüntü yoludur.
Digər funksiyalar
- Əlavə məlumat üçün müraciət edə bilərsiniz http://effbot.org/imagingbook pil
STM32 ilə istifadə
Proqram təminatının təsviri
- Demo HAL kitabxanası əsasında hazırlanmışdır. Demo yükləyin, STM32 proqramını tapın file qovluğu seçin və proqramı yoxlamaq üçün STM32\STM32F103RBT6\MDK-ARM kataloqunda LCD_demo.uvprojx faylını açın.

- main.c-ni açın, siz bütün test proqramlarını görə bilərsiniz, müvafiq ekranda test proqramlarının qarşısındakı şərhləri silə və yenidən tərtib edib yükləyə bilərsiniz.

- LCD_0in96_test() 0.96inch LCD test proqramı
- LCD_1in14_test() 1.14inch LCD test proqramı
- LCD_1in28_test() 1.28inch LCD test proqramı
- LCD_1in3_test() 1.3 düymlük LCD test proqramı
- LCD_1in54_test() 1.54inch LCD test proqramı
- LCD_1in8_test() 1.8inch LCD test proqramı
- LCD_2in_test() 2inch LCD test proqramı
Proqramın təsviri
Əsas aparat interfeysi
Məlumat növü
- #define / UBYTE / uint8_t
- #define / UWORD / uint16_t
- #define / UDOUBLE / uint32_t
Modulun işə salınması və çıxması

GPIO yazın və oxuyun
- void / DEV_Digital_Write(UWORD Pin, UBYTE Dəyəri);
- UBYTE / DEV_Digital_Read(UWORD Pin);
SPI yazma məlumatları
- UBYTE / SPI4W_Write_Byte(uint8_t dəyəri);
Üst tətbiq
Ekran üçün şəkillər çəkmək, Çin və İngilis simvollarını göstərmək, şəkilləri göstərmək və s. lazımdırsa, bunu etmək üçün yuxarı proqramdan istifadə edə bilərsiniz və biz burada STM32\STM32F103RB\ kataloqunda bəzi qrafiklərin işlənməsi ilə bağlı bəzi əsas funksiyaları təqdim edirik. İstifadəçi\GUI_DEV\GUI_Paint.c(.h)
Qeyd: STM32 və arduino-nun daxili operativ yaddaşının ölçüsünə görə, GUI birbaşa LCD-nin operativ yaddaşına yazılır.

GUI-dən asılı olan simvol şrifti STM32\STM32F103RB\User\Fonts qovluğundadır

- Yeni Şəkil Xüsusiyyətləri: Yeni şəkil xassəsi yaradın, bu xüsusiyyətə şəkil buferinin adı, eni, hündürlüyü, çevirmə bucağı, rəng daxildir.

Aydın ekran funksiyasını təyin edin, adətən LCD-nin aydın funksiyasını birbaşa çağırın

Rəsm pikseli funksiyasını təyin edin

Şəkil buferini seçin: seçimin məqsədi ondan ibarətdir ki, siz çoxlu şəkil atributları yarada bilərsiniz, şəkil buferi çoxlu ola bilər, siz yaratdığınız hər şəkli seçə bilərsiniz

Şəklin fırlanması: Seçilmiş şəklin fırlanma bucağını təyin edin, tercihen Paint_SelectImage() funksiyasından sonra 0, 90, 180, 270 döndərməyi seçə bilərsiniz.

Şəkil güzgüsü çevrilməsi: Seçilmiş şəklin güzgü çevrilməsini təyin edin. Siz heç bir güzgü, üfüqi güzgü, şaquli güzgü və ya görüntü mərkəzi güzgü seçə bilməzsiniz.

Buferdə ekran mövqeyi və rəng nöqtələrini təyin edin: burada əsas GUI funksiyası, emal nöqtələri buferdəki mövqeyi və rəngi göstərir.

Şəkil buferinin rəngi: Şəkil buferini rənglə doldurur, adətən ekranı boş yerə yandırmaq üçün istifadə olunur.

Pəncərənin rəngini dolduran şəkil bufer hissəsi: pəncərənin müəyyən bir rənglə doldurulmuş şəkil bufer hissəsi, ümumiyyətlə pəncərənin ağardılması funksiyası kimi, tez-tez vaxt göstərmək üçün istifadə olunur, saniyədə ağardılır

Xalları çəkmək: Şəkil buferində (Xpoint, Ypoint) üzərində nöqtələr çəkin, siz nöqtənin rəngini, ölçüsünü, üslubunu seçə bilərsiniz.

Xətt çəkmə: Şəkil buferində, (Xstart, Ystart)-dan (Xend, Yend) qədər olan xətt, siz rəngi, xəttin enini, xətt üslubunu seçə bilərsiniz.

Düzbucaqlı çəkin: Şəkil buferində (Xstart, Ystart) -dən (Xend, Yend) düzbucaqlı çəkin, siz rəngini, xəttin enini, düzbucaqlının içini doldurub-doldurmayacağınızı seçə bilərsiniz.

Dairə çəkin: Şəkil buferində mərkəz olaraq (X_Center Y_Center) Radius dairəsi çəkin. Rəngi, xəttin enini və dairənin içini doldurub-doldurmayacağınızı seçə bilərsiniz.

Ascii simvolunu yazın: Şəkil buferində (Xstart Ystart) sol təpə kimi Ascii simvolu yazın, Ascii vizual simvol kitabxanasını, şriftin ön plan rəngini, fontun fon rəngini seçə bilərsiniz.

İngilis sətirini yazın: Şəkil buferində sol təpə kimi (Xstart Ystart) istifadə edin, ingilis simvollarından ibarət sətir yazın, Ascii vizual simvol kitabxanasını, şriftin ön plan rəngini, fontun fon rəngini seçə bilərsiniz.

Çin sətirini yazın: şəkil buferində sol təpə kimi (Xstart Ystart) istifadə edin, Çin simvollarından ibarət sətir yazın, GB2312 kodlaşdırma simvol şriftini, şriftin ön plan rəngini, fontun fon rəngini seçə bilərsiniz.

Nömrələri yazın: Şəkil buferində sol təpə kimi (Xstart Ystart) istifadə edin, rəqəmlər sətrini yazın, Ascii vizual simvol kitabxanasını, şriftin ön plan rəngini, şriftin fon rəngini seçə bilərsiniz.

Göstərmə vaxtı: şəkil buferində sol təpə kimi (Xstart Ystart) istifadə edin, göstərmə vaxtı, Ascii vizual simvol şriftini, şriftin ön plan rəngini, fontun fon rəngini seçə bilərsiniz.

Arduino proqram təminatının təsviri
Qeyd: Demoların hamısı Arduino uno-da sınaqdan keçirilir. Arduino-nun başqa növlərinə ehtiyacınız varsa, qoşulmuş sancaqların düzgün olub olmadığını müəyyən etməlisiniz.
Arduino IDE quraşdırma addımları
Proqramı işə salın
Məhsul ensiklopediyasının interfeysində proqramı yükləyin və sonra onu açın. Arduino proqramı ~/Arduino/… ünvanında yerləşir.

Lütfən, açmaq üçün LCD ekran modelinə uyğun müvafiq proqramı seçin

Siz edə bilərsiniz view Ölçüyə görə çeşidlənmiş bütün ekran ölçüləri üçün test proqramları:
- məsələnample, 1.54 düymlük LCD modul. LCD_1inch54 qovluğunu açın və LCD_1inch54.ino proqramını işə salın file.
- Proqramı açın, Arduino UNO inkişaf lövhəsi modelini seçin

Müvafiq COM portunu seçin

Sonra tərtib etmək və yükləmək üçün klikləyin

Proqram təsviri
Sənədin təqdimatı
Keçmiş kimi 1.54 düymlük LCD-yə nəzarət edən Arduino UNO-nu götürünample, Arduino\LCD_1inch54 qovluğunu açın:

Bunlardan:
- LCD_1inch54.ino: Arduino IDE ilə açıq;
- LCD_Driver.cpp(.h): LCD ekranın sürücüsüdür;
- DEV_Config.cpp(.h): Oxuma və yazma pin səviyyələrini, SPI ötürülmə məlumatlarını və pin başlanğıcını əhatə edən aparat interfeysi tərifidir;
- font8.cpp, font12.cpp, font16.cpp, font20.cpp, font24.cpp, font24CN.cpp, fonts.h: müxtəlif ölçülü simvollar üçün şriftlər;
- image.cpp(.h): hər hansı BMP şəklini Img16Lcd vasitəsilə 2 bitlik həqiqi rəngli təsvir massivinə çevirə bilən təsvir verilənləridir (inkişaf məlumatlarında endirilə bilər).
- Proqram alt qatlı aparat interfeysinə, orta səviyyəli LCD ekran sürücüsünə və yuxarı qat tətbiqinə bölünür;
Əsas Hardware İnterfeysi
Aparat interfeysi ikidə müəyyən edilir files DEV_Config.cpp(.h) və oxu və yazma pin səviyyəsi, gecikmə və SPI ötürülməsi kimi funksiyalar əhatə olunub.
pin səviyyəsini yazın
- void DEV_Digital_Write(int pin, int dəyər)
Birinci parametr pin, ikincisi isə yüksək və aşağı səviyyədir.
Pin səviyyəsini oxuyun
- int DEV_Digital_Read(int pin)
Parametr pindir, qaytarılan dəyər isə oxunan pin səviyyəsidir.
Gecikmə
DEV_Delay_ms(imzasız int gecikmə vaxtı)
- millisaniyə səviyyəli gecikmə.
SPI çıxış məlumatları
- DEV_SPI_WRITE(imzasız simvol datası)
Parametr simvol növüdür, 8 bit tutur.
Üst Tətbiq
Ekran üçün şəkillər çəkmək, Çin və İngilis simvollarını göstərmək, şəkilləri göstərmək və s. lazımdırsa, bunu etmək üçün yuxarı proqramdan istifadə edə bilərsiniz və biz burada GUI_Paint.c( kataloqunda bəzi qrafiklərin işlənməsi ilə bağlı bəzi əsas funksiyaları təqdim edirik. .h)
Qeyd: STM32 və Arduino-nun daxili operativ yaddaşının ölçüsünə görə, GUI birbaşa LCD-nin operativ yaddaşına yazılır.

GUI tərəfindən istifadə edilən şriftlərin hamısı şriftdən asılıdır*.cpp(h) files eyni altında file

- Yeni Şəkil Xüsusiyyətləri: Yeni şəkil xassəsi yaradın, bu xüsusiyyətə şəkil buferinin adı, eni, hündürlüyü, çevirmə bucağı və rəng daxildir.

- Aydın ekran funksiyasını təyin edin, adətən LCD-nin aydın funksiyasını birbaşa çağırın.

- Rəsm pikseli funksiyasını təyin edin.

- Şəkil buferini seçin: seçimin məqsədi ondan ibarətdir ki, siz çoxlu şəkil atributları yarada bilərsiniz, şəkil buferləri çoxlu ola bilər və siz yaratdığınız hər şəkli seçə bilərsiniz.

- Şəklin fırlanması: Seçilmiş şəklin fırlanma bucağını təyin edin, tercihen Paint_SelectImage() funksiyasından sonra 0, 90, 180, 270 döndərməyi seçə bilərsiniz.

- Şəkil güzgüsü çevrilməsi: Seçilmiş şəklin güzgü çevrilməsini təyin edin. Siz heç bir güzgü, üfüqi güzgü, şaquli güzgü və ya görüntü mərkəzi güzgü seçə bilməzsiniz.

- Buferdə ekran mövqeyi və rəng nöqtələrini təyin edin: burada əsas GUI funksiyası, emal nöqtələri buferdəki mövqeyi və rəngi göstərir.

- Şəkil buferinin rəngi: Şəkil buferini rənglə doldurur, adətən ekranı boş yerə yandırmaq üçün istifadə olunur.

- Xalları çəkmək: Şəkil buferində (Xpoint, Ypoint) üzərində nöqtələr çəkin, siz nöqtənin rəngini, ölçüsünü, üslubunu seçə bilərsiniz.

- Xətt çəkmə: Şəkil buferində, (Xstart, Ystart)-dan (Xend, Yend) qədər olan xətt, siz rəngi, xəttin enini, xətt üslubunu seçə bilərsiniz.

- Düzbucaqlı çəkin: Şəkil buferində (Xstart, Ystart) -dən (Xend, Yend) düzbucaqlı çəkin, siz rəngini, xəttin enini, düzbucaqlının içini doldurub-doldurmayacağınızı seçə bilərsiniz.

- Dairə çəkin: Şəkil buferində mərkəz olaraq (X_Center Y_Center) Radius dairəsi çəkin. Rəngi, xəttin enini və dairənin içini doldurub-doldurmayacağınızı seçə bilərsiniz.

- Ascii simvolunu yazın: Şəkil buferində (Xstart Ystart) sol təpə kimi Ascii simvolu yazın, Ascii vizual simvol kitabxanasını, şriftin ön plan rəngini, fontun fon rəngini seçə bilərsiniz.

- İngilis sətirini yazın: Şəkil buferində sol təpə kimi (Xstart Ystart) istifadə edin, ingilis simvollarından ibarət sətir yazın, Ascii vizual simvol kitabxanasını, şriftin ön plan rəngini, fontun fon rəngini seçə bilərsiniz.

- Çin sətirini yazın: şəkil buferində sol təpə kimi (Xstart Ystart) istifadə edin, Çin simvollarından ibarət sətir yazın, GB2312 kodlaşdırma simvol şriftini, şriftin ön plan rəngini, fontun fon rəngini seçə bilərsiniz.

- Nömrələri yazın: Şəkil buferində sol təpə kimi (Xstart Ystart) istifadə edin, rəqəmlər sətrini yazın, Ascii vizual simvol kitabxanasını, şriftin ön plan rəngini, şriftin fon rəngini seçə bilərsiniz.

- Onluqlarla ədədləri yazın: (Xstart Ystart) sol təpə kimi, ondalıklarla rəqəmlər sətrini yazın, Ascii kodu vizual simvol şriftini, şriftin ön plan rəngini, fontun fon rəngini seçə bilərsiniz

- Göstərmə vaxtı: şəkil buferində sol təpə kimi (Xstart Ystart) istifadə edin, göstərmə vaxtı, Ascii vizual simvol şriftini, şriftin ön plan rəngini, fontun fon rəngini seçə bilərsiniz.

- Şəkil göstərin: (Xstart Ystart) sol təpə kimi eni W_Image və hündürlüyü H_Image olan şəkli göstərin;

VisionFive2
Adaptiv Model
- 0.96 düymlük LCD modul
- 1.14 düymlük LCD modul
- 1.28 düymlük LCD modul
- 1.3 düymlük LCD modul
- 1.54 düymlük LCD modul
- 1.8 düymlük LCD modul
- 2 düymlük LCD modul
- 2.4 düymlük LCD modul
Aparat Bağlantısı

VisionFive2 Pin Bağlantısı

Müvafiq kitabxanaları quraşdırın

Demo Yükləmə

Aldığınız Ekrana uyğun olaraq Müvafiq Demonu işə salın

Resurslar
Sənəd
Proqram təminatı
Demo kodları
3D Rəsm
Tez-tez verilən suallar
'Sual:' 1. Raspberry Pi ilə istifadə edərkən LCD qara qalır?
Cavab:
- SPI interfeysini aktivləşdirdiyinizi yoxlayın
- BL pinini yoxlayın, əgər BL pininin çıxış dəyəri yoxdursa, siz BL pinini ayırıb yenidən sınaqdan keçirə bilərsiniz.
'Sual:' 2. Python kodlarında xəta var? Cavab:
- Lütfən, şəkil kitabxanalarını quraşdırın və yenidən sınaqdan keçirin. Komandanı işə salın: sudo apt-get install pythonimaging onu quraşdırmaq və yenidən sınaqdan keçirmək üçün.
'Sual:' 3. Arduino-ya qoşulduqda ekran niyə düzgün görünmür?
Cavab:
- Arduino istifadə edərkən, lütfən, onun 5V enerji təchizatına qoşulduğundan əmin olun.
'Sual:'4. Raspberry Pi nəzarətlərinin səhv istifadəsi səbəb ola bilərmi?
Cavab:
Əgər wiringPi demosunun işə salınması normaldırsa, o zaman python və ya BCM2835-in işləməsi ekranın normal şəkildə yenilənməsinə səbəb ola bilər, çünki bcm2835 kitabxanası Raspberry Pi cpu çipinin kitabxana funksiyasıdır və alt təbəqə registrləri birbaşa idarə etməkdir. wiringPi kitabxanasının alt təbəqəsi və python oxumaq və yazmaqla oxunur və yazılır. Cihaz file GPIO portunun anormal olmasına səbəb ola biləcək cihazı linux sisteminin bir hissəsi işlədir. Raspberry Pi-ni yenidən işə salmaq onu mükəmməl həll edə bilər.
'Sual:'5. Şəkili necə çevirmək olar?
Cavab:
- C dili nəzarəti Paint_SetRotate(Rotate) funksiyasından istifadə edə bilər; Lakin C dilində çevirmə bucağı yalnız 0, 90, 180, 270 dərəcə ola bilər; Python istənilən bucağı çevirmək üçün rotate (Rotate) çağıra bilər.
'Sual:'6. 2 düymlük LCD modulun maksimum enerji istehlakı nədir?
Cavab:
- 3.3V 46mA
Dəstək
- Texniki dəstəyə ehtiyacınız varsa, səhifəyə daxil olun və bilet açın.
Sənədlər / Resurslar
![]() |
Waveshare General 2 düymlük LCD displey modulu [pdf] Təlimat kitabçası Ümumi 2 düymlük LCD displey modulu, Ümumi, 2 düymlük LCD displey modulu, LCD displey modulu, displey modulu, modul |

