IL9341 2.4inch LCD TFT Display Module
Impormasyon sa Produkto:
Ang 2.4inch LCD Module usa ka TFT display module nga adunay resolusyon
sa 240 * 320. Kini naggamit sa SPI interface alang sa komunikasyon ug adunay
usa ka internal nga controller nga adunay sukaranan nga mga gimbuhaton. Ang LCD makadrowing
mga punto, linya, lingin, ug rektanggulo, ug makapakita ug English,
Intsik, ingon man mga litrato. Ang module adunay kompleto
pagsuporta sa Raspberry Pi demo (BCM2835 library, WiringPi library,
ug python demos), STM32 demos, ug Arduino demos.
Mga detalye:
- Ang operating voltage: 3.3V / 5V
- Interface: SPI
- Type sa LCD: TFT
- Controller: IL9341
- Resolusyon: 240(V) x 320(H)RGB
- Gidak-on sa Display: 36.72Hx 48.96Vmm
- Gidak-on sa Pixel: 0.153Hx 0.153Vmm
- Dimensyon: 70.5 x 43.3(mm)
Mga Panudlo sa Paggamit sa Produkto:
Koneksyon sa Hardware sa Raspberry Pi:
Palihug ikonektar ang LCD sa imong Raspberry Pi gamit ang 8PIN cable
sumala sa talaan sa ubos:
| LCD | VCC | GND | DIN | CLK | CS | DS | RST | BL |
|---|---|---|---|---|---|---|---|---|
| Raspberry Pi | 3.3V | GND | MOSI | SCLK | CE0 | 25 | 27 | 18 |
| Raspberry Pi Board | 3.3V | GND | 19 | 23 | 24 | 22 | 13 | 12 |
Ang 2.4inch LCD naggamit sa PH2.0 8PIN interface, nga mahimo
konektado sa Raspberry Pi sumala sa lamesa sa ibabaw. Palihug
pagkonektar sumala sa lamesa sa kahulugan sa pin. Ang kolor sa
Ang mga wiring sa litrato para ra sa pakisayran, ug ang aktuwal nga kolor
mahimong magkalahi.
STM32 Hardware Koneksyon:
Ang exampAng gihatag gibase sa STM32F103RBT6. Palihug sumpay
sumala sa aktuwal nga pin.
| LCD | VCC | GND | DIN | CLK | CS | DC | RST | BL |
|---|---|---|---|---|---|---|---|---|
| STM32 | 3.3V | GND | PA7 | PA5 | PB6 | PA8 | PA9 | PC7 |
Kuhaa ang XNUCLEO-F103RB development board nga gihimo sa among
kompanya kay example, ang koneksyon mao ang mosunod:
Koneksyon sa Arduino Hardware:
Ikonektar ang LCD sa Arduino UNO sumala sa pin
talaan sa sulat sa ubos:
| LCD | VCC | GND | DIN | CLK | CS | DC | RST | BL |
|---|---|---|---|---|---|---|---|---|
| Arduino UNO | 5V | GND | D11 | D13 | D10 | D7 | D8 | D9 |
Pagtrabaho uban sa Raspberry Pi:
Aron mahimo ang interface sa SPI sa Raspberry Pi, sunda kini
lakang:
- Ablihi ang terminal ug gamita ang command sa pagsulod sa
panid sa pagsumpo: sudo raspi-config - Pilia ang Interfacing Options -> SPI -> Oo aron mahimo ang SPI
interface. - I-reboot ang Raspberry Pi: sudo reboot.
- Palihug siguroha nga ang SPI wala giokupahan sa ubang mga device sa
pagsusi sa tunga sa /boot/config.txt.
Aron ma-install ang gikinahanglan nga mga librarya sa Raspberry Pi:
I-install ang BCM2835 nga mga librarya:
# Ablihi ang Raspberry Pi terminal ug padagana ang mosunod nga sugo wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz tar zxvf bcm2835-1.71.tar.gz cd bcm2835-1.71/ sudo ./ i-configure && sudo make && sudo make check && sudo make install # Para sa dugang impormasyon, palihog tan-awa ang opisyal website: http://www.airspayce.com/mikem/bcm2835/
I-install ang wiringPi nga mga librarya:
# Ablihi ang terminal sa Raspberry Pi ug padagana ang mosunod nga sugo sudo apt-get install wiringpi # Para sa mga sistema sa Raspberry Pi human sa Mayo 2019, tingali kinahanglan nimo nga mag-upgrade: wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb gpio -v # Run gpio -v ug ang bersyon 2.52 makita. Kung dili kini makita, sayup ang pag-install.
FAQ:
Q: Unsa ang resolusyon sa 2.4inch LCD Module?
A: Ang resolusyon sa 2.4inch LCD Module mao ang 240 x 320.
P: Unsang mga interface ang gisuportahan sa LCD Module?
A: Ang LCD Module nagsuporta sa SPI interface alang sa
komunikasyon.
P: Unsa nga mga programming language ang gisuportahan sa LCD Module
mga demo?
A: Ang LCD Module demos nagsuporta sa Python, BCM2835 library,
WiringPi library, STM32, ug Arduino.
2.4 pulgada nga LCD Module
Tapos naview
2.4 pulgada nga LCD Module
Pasiuna
Ingon usa ka 2.4inch TFT display module nga adunay resolusyon nga 240 * 320,
kini naggamit sa SPI interface alang sa komunikasyon. Ang LCD adunay internal nga controller nga adunay sukaranan nga mga gimbuhaton, nga magamit sa pagdrowing
240 x 320
mga punto, mga linya, mga lingin, ug mga rektanggulo, ug makapakita ug English, Chinese ingon man mga hulagway.
Naghatag kami og kompleto nga pagsuporta sa Raspberry Pi demo (BCM2835 library, WiringPi library,
ug python demos), STM32 demos, ug Arduino demos.
Espesipikasyon
Ang operating voltage: 3.3V/5V (Kung gigamit ang 5V power supply, ang logic voltage maoy 5v; Kung gigamit ang 3.3V power supply, ang logic voltage 3.3V) Interface: SPI LCD Type: TFT Controller: IL9341 Resolution: 240(V) x 320(H)RGB
Gidak-on sa Display: 36.72Hx 48.96Vmm Gidak-on sa Pixel: 0.153Hx 0.153Vmm
Dimensyon: 70.5 x 43.3(mm)
Interface Deskripsyon Raspberry Pi hardware koneksyon
Palihug ikonektar ang LCD sa imong Raspberry Pi pinaagi sa 8PIN cable sumala sa lamesa sa ubos Kung imong gigamit ang pin header o PH2.0 8PIN interface, kinahanglan nimo nga magkonektar sumala sa mosunod nga lamesa
Sumpaysumpaya ang Raspberry Pi
LCD
VCC GND DIN CLK
CS DS RST BL
BCM2835 3.3V GND MOSI SCLK CE0 25 27 18
Raspberry Pi
Board 3.3V GND
19 23 24 22 13 12
Ang 2.4inch LCD naggamit sa PH2.0 8PIN interface, nga mahimong konektado sa Raspberry Pi sumala sa ibabaw nga lamesa: (Palihug ikonektar sumala sa pin definition table. Ang kolor sa mga wiring sa hulagway alang lamang sa reference, ug ang aktuwal nga kolor ang mopatigbabaw.)
STM32 hardware koneksyon
Ang exampAng among gihatag gibase sa STM32F103RBT6, ug ang gihatag nga pamaagi sa koneksyon mao usab ang katugbang nga pin sa STM32F103RBT6. Kung kinahanglan nimo nga i-transplant ang programa, palihug pagkonektar sumala sa aktuwal nga pin.
STM32F103ZET koneksyon pin nga mga sulat
LCD VCC GND DIN CLK
CS DC RST BL
STM32 3.3V GND PA7 PA5 PB6 PA8 PA9 PC7
Kuhaa ang XNUCLEO-F103RB development board nga gihimo sa among kompanya isip example, ang koneksyon mao ang mosunod:
Koneksyon sa Arduino hardware
Arduino UNO Connection pin correspondence LCD VCC GND DIN CLK CS DC RST BL
Ang diagram sa koneksyon mao ang mosunod (i-klik aron mapadako):
UNO 5V
GND D11 D13 D10 D7 D8 D9
Deskripsyon sa Hardware LCD ug ang controller
Gisuportahan sa LCD ang 12-bit, 16-bit, ug 18-bit nga mga format sa kolor sa input matag pixel, nga mao ang RGB444, RGB565, ug RGB666 tulo ka mga format sa kolor, kini nga demo naggamit sa RGB565 color format, nga usa usab ka sagad nga gigamit nga RGB format. Alang sa kadaghanan sa mga LCD controller, ang mode sa komunikasyon sa controller mahimong ma-configure, kasagaran adunay 8080 parallel interface, three-wire SPI, four-wire SPI, ug uban pang pamaagi sa komunikasyon. Kini nga LCD naggamit sa usa ka upat ka wire nga interface sa komunikasyon sa SPI, nga makaluwas pag-ayo sa GPIO port, ug ang gikusgon sa komunikasyon mahimong mas paspas. Protokol sa Komunikasyon
Mubo nga sulat: Lahi sa tradisyonal nga protocol sa SPI, ang linya sa datos gikan sa ulipon hangtod sa agalon gitago tungod kay ang aparato adunay kinahanglan nga pagpakita. RESX: ang reset pin, kini kinahanglan nga ubos kon powering ang module ug mas taas sa ubang mga panahon; CSX: pagpili sa slave chip, kung ubos ang CS, ang chip ma-enable. D/CX: data/command control pin, kung DC = 0, isulat ang command, kung DC = 1, isulat ang data SDA: ang data pin alang sa pagpasa sa RGB data, kini naglihok isip MOSI pin sa SPI interface; Ang SCL nagtrabaho isip SCLK pin sa SPI interface. Ang komunikasyon sa SPI adunay data transfer timing, nga gihiusa sa CPHA ug CPOL. Gitino sa CPOL ang lebel sa serial synchronous nga orasan sa idle state. Kung ang CPOL = 0, ang lebel Ubos. Bisan pa, ang CPOL adunay gamay nga epekto sa transmission. Gitino sa CPHA kung nakolekta ba ang datos sa una nga sulab sa orasan o sa ikaduha nga sulab sa orasan sa serial synchronous nga orasan; kung ang CPHL = 0, ang datos makolekta sa unang sulab sa orasan. Adunay 4 ka paagi sa komunikasyon sa SPI. Ang SPI0 kasagarang gigamit, diin ang CPHL = 0, CPOL = 0.
Nagtrabaho sa Raspberry Pi
I-enable ang interface sa SPI
PS: Kung gigamit nimo ang sistema sa sanga sa Bullseye, kinahanglan nimo nga usbon ang "apt-get" sa "apt", ang sistema sa sanga sa Bullseye nagsuporta lamang sa Python3.
Ablihi ang terminal, gamita ang command aron makasulod sa panid sa pagsumpo
sudo raspi-config Pilia ang Interfacing Options -> SPI -> Oo aron mahimo ang SPI interface
I-reboot ang Raspberry Pi
sudo reboot
Palihug siguroha nga ang SPI dili okupar sa ubang mga device, mahimo nimong susihon sa tunga sa /boot/config.txt
I-install ang mga Librarya
I-install ang BCM2835 nga mga librarya
#Buksi ang terminal sa Raspberry Pi ug padagana ang mosunod nga sugo wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz tar zxvf bcm2835-1.71.tar.gz cd bcm2835-1.71/ sudo ./ i-configure && sudo make && sudo make check && sudo make install # Para sa dugang impormasyon, palihog tan-awa ang opisyal website: http://www.a irspayce.com/mikem/bcm2835/
I-install ang wiringPi nga mga librarya
#Buksi ang terminal sa Raspberry Pi ug padagana ang mosunod nga sugo sudo apt-get install wiringpi #Alang sa mga sistema sa Raspberry Pi human sa Mayo 2019 (mas sayo pa kay sa kaniadto, dili nimo kinahanglan nga ipatuman), tingali kinahanglan nimo nga mag-upgrade: wget https://proyekto -downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb gpio -v # Run gpio -v ug ang bersyon 2.52 makita. Kung dili kini makita, ang installation sayop
#Bullseye branch system naggamit sa mosunod nga sugo: git clone https://github.com/WiringPi/WiringPi cd WiringPi ./build gpio -v # Run gpio -v ug ang bersyon 2.60 makita. Kung dili kini makita, kini nagpasabut nga adunay sayup sa pag-install
I-install ang mga librarya sa 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 install RPi.GPIO sudo pip install 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 install RPi.GPIO sudo pip3 install spidev
Pag-download sa Examples
Ablihi ang Raspberry Pi terminal ug padagana ang mosunod nga sugo
sudo apt-get install 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/
Pagdalagan ang mga demo code
Palihug adto sa direktoryo sa RaspberryPi (demo codes) ug ipadagan ang mga sugo sa terminal
C mga kodigo
I-compile pag-usab ang mga demo code
cd c sudo paghimo og limpyo sudo paghimo -j 8
Ang programa sa pagsulay sa tanan nga mga screen mahimong tawagan direkta pinaagi sa pagsulod sa katugbang nga gidak-on
sudo ./main Screen Size
Depende sa LCD, usa sa mosunod nga mga sugo kinahanglang isulod:
#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 Module sudo ./main 1.47 #1.54inch LCD Module sudo ./main 1.54 #1.8inch LCD Module sudo ./main 1.8 #2inch LCD Module sudo ./main 2 #2.4inch LCD Module sudo ./main 2.4
python
Pagsulod sa direktoryo sa programa sa python ug pagdagan ang command ls -l
cd python/exampmga ls -l
Ang mga programa sa pagsulay alang sa tanan nga mga screen mahimo viewed, gihan-ay sa gidak-on: 0inch96_LCD_test.py: 0.96inch LCD test program 1inch14_LCD_test.py: 1.14inch LCD test program 1inch28_LCD_test.py: 1.28inch LCD test program 1inch3_LCD_test.py: 1.3inch LCD test program 1inch. programa 47inch1.47_LCD_test.py: 1inchLCD test program 54inch1.54_LCD_test.py: 1inch LCD test program 8inch_LCD_test.py: 1.8inch LCD test program 2inch2_LCD_test.py: 2inch4 LCD test program
Pagdagan lang ang programa nga katumbas sa screen, gisuportahan sa programa ang 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 1inch_LCD_test.py sudo python 54inch1_LCD_test.py sudo python 8inch2_LCD_test.py sudo python 2inch_LCD python 4inch_LCD_test.py sudo python 3inch3_LCD_test.py # python0 sudo python96 3inch1_LCD_test.py sudo python14 3inch1_LCD_test.py sudo python28 3inch1_LCD_test.py sudo python3 3inch1_LCD_test.py sudo python47 3inch1_LCD_test.py sudo python54 3inch1.py sudo python8 3inch2 python3 2inch_LCD_test.py sudo python4 XNUMXinchXNUMX_LCD_test.py
FBCP Porting
PS: Ang FBCP sa pagkakaron dili compatible sa 64-bit Raspberry Pi system, girekomendar nga gamiton ang 32-bit system.
Ang Framebuffer naggamit ug video output device aron sa pag-drive sa video display device gikan sa memory buffer nga adunay kompletong frame data. Sa yanong pagkasulti, usa ka lugar sa panumduman ang gigamit sa pagtipig sa sulud sa gipakita, ug ang sulud sa gipakita mahimong usbon pinaagi sa pagbag-o sa datos sa panumduman. Adunay usa ka bukas nga gigikanan nga proyekto sa github: fbcp-ili9341. Kung itandi sa ubang mga proyekto sa fbcp, kini nga proyekto naggamit sa partial refresh ug DMA aron makab-ot ang tulin nga hangtod sa 60fps
Pag-download sa mga Driver
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/*
Pamaagi 1: Paggamit og script (girekomenda)
Dinhi nagsulat kami og pipila ka mga script nga nagtugot sa mga tiggamit sa dali nga paggamit sa fbcp ug pagpadagan sa katugbang nga mga sugo sumala sa ilang kaugalingong screen Kung mogamit ka og script ug dili kinahanglan nga usbon kini, mahimo nimong ibalewala ang ikaduhang pamaagi sa ubos. Mubo nga sulat: Ang script mopuli sa katugbang nga /boot/config.txt ug /etc/rc.local ug i-restart, kung gikinahanglan sa user, palihug i-back up ang may kalabutan files sa abante.
#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
Pamaagi 2: Manwal nga Pag-configure
Konfigurasyon sa Kalikopan
Ang vc4-kms-v3d sa Raspberry Pi maoy hinungdan nga mapakyas ang fbcp, mao nga kinahanglan natong isira ang vc4-kms-v3d sa dili pa kini i-install sa fbcp.
sudo nano /boot/config.txt
I-block lang ang statement nga katumbas sa hulagway sa ubos.
Usa ka reboot unya gikinahanglan.
sudo reboot
Pag-compile ug pagdagan
mkdir build cd build cmake [mga opsyon] .. sudo make -j sudo ./fbcp
Ilisan kini sa imong kaugalingon sumala sa LCD Module nga imong gigamit, labaw sa cmake [mga kapilian] ..
#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_BUSDB_CLOCKD20CH1_14 LIG HT_CONTROL=ON -DSTATISTICS=0 .. #1.3inch LCD Module sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH3_LCD=ON -DBACKLIGH T_CONTROL=ON -DSTATISTICS=0 .. #1.54inch LCD Module sudo cmake -DSPI_BUS_DIVACK=20CH1_HARD LIG HT_CONTROL=ON -DSTATISTICS =54 .. #0inch LCD Module sudo cmake -DSPI_BUS_CLOCK_DIVISOR=1.8 -DWAVESHARE_20INCH1_LCD=ON -DBACKLIGH T_CONTROL=ON -DSTATISTICS=8 .. #0inch LCD Module - sudo cmake -DSPI_BUS_CLOCK=2LCD_DIVISOR _CONTROL=ON - DSTATISTICS=20 .. #2inch LCD Module sudo cmake -DSPI_BUS_CLOCK_DIVISOR=0 -DWAVESHARE_2.4INCH20_LCD=ON -DBACKLIGH T_CONTROL=ON -DSTATISTICS=2 ..
I-set up aron awtomatiko nga magsugod
sudo cp ~/Waveshare_fbcp/buil d/fbcp /usr/local/bin/fbcp sudo nano /etc/rc.local
Idugang ang fbcp& sa dili pa mogawas 0. Timan-i nga kinahanglan nimong idugang ang "&" aron modagan sa background, kung dili ang sistema mahimong dili makasugod.
Ibutang ang Display Resolution
Ibutang ang gidak-on sa display sa user interface sa /boot/config.txt file.
sudo nano /boot/config.txt
Dayon idugang ang mosunod nga mga linya sa katapusan sa config.txt.
hdmi_force_hotplug=1 hdmi_cvt=[mga opsyon] hdmi_group=2 hdmi_mode=1 hdmi_mode=87 display_rotate=0
Ilisan ang labaw sa hdmi_cvt=[mga kapilian] sumala sa LCD Module nga imong gigamit.
#2.4inch LCD Module & 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
Ug unya i-reboot ang sistema
sudo reboot
Human sa pag-reboot sa sistema, ang Raspberry Pi OS user interface ipakita.
Deskripsyon sa API
Ang serye sa RaspberryPi mahimong magpaambit sa usa ka hugpong sa mga programa, tungod kay silang tanan mga naka-embed nga sistema, ug ang pagkaangay medyo lig-on. Ang programa gibahin sa bottom-layer hardware interface, middle-layer LCD screen driver, ug upper-layer application;
C
Interface sa Hardware
Gibuhat namo ang ubos nga lebel nga encapsulation, kung kinahanglan nimo nga mahibal-an ang internal nga pagpatuman mahimong moadto sa katugbang nga direktoryo aron masusi, tungod sa rason nga ang hardware nga plataporma ug ang internal nga pagpatuman lahi. Mahimo nimong ablihan ang DEV_Config.c(.h) aron makita ang mga kahulugan, nga sa direktoryo nga RaspberryPiclibConfig.
1. Adunay tulo ka paagi sa pagmaneho sa C: BCM2835 library, WiringPi library, ug Dev library matag usa 2. Gigamit namo ang Dev library sa default. Kung kinahanglan nimo nga usbon sa BCM2835 o Wi ringPi nga mga librarya, palihug ablihi ang RaspberryPicMakefile ug usba ang mga linya 13-1 5 ingon sa mosunod:
Matang sa datos:
#define UBYTE #define UWORD #define UDOUBLE
uint8_t uint16_t uint32_t
Pag-initialize sa module ug pagproseso sa paggawas.
void DEV_Module_Init(walay sulod); void DEV_Module_Exit(walay sulod); Mubo nga sulat:
Ania ang pipila ka pagproseso sa GPIO sa wala pa ug pagkahuman sa paggamit sa LCD screen.
GPIO pagbasa ug pagsulat:
walay DEV_Digital_Write(UWORD Pin, UBYTE Value); UBYTE DEV_Digital_Read(UWORD Pin);
SPI pagsulat data:
walay sulod DEV_SPI_WriteByte(UBYTE Value);
Ibabaw nga aplikasyon
Kung kinahanglan nimo nga magdrowing og mga litrato o magpakita sa mga karakter nga Intsik ug English, naghatag kami pipila ka sukaranan nga mga gimbuhaton dinhi bahin sa pipila nga pagproseso sa mga graphic sa direktoryo nga RaspberryPiclibGUIGUI_Paint.c(.h).
Ang mga font makita sa direktoryo sa RaspberryPiclibFonts.
Bag-ong Image Properties: Paghimo ug bag-ong image buffer, kini nga property naglakip sa image buffer name, width, height, flip Angle, ug color.
void Paint_NewImage(UBYTE *image, UWORD Width, UWORD Height, UWORD Rotate, UWORD Color) Mga Parameter:
Imahe: ang ngalan sa buffer sa imahe, nga sa tinuud usa ka pointer sa una nga adres sa buffer sa imahe;
Lapad: hulagway buffer Lapad; Gitas-on: ang Gitas-on sa buffer sa imahe; Pag-rotate: Nagpakita sa rotation Anggulo sa usa ka imahe Kolor: ang inisyal nga Kolor sa imahe;
Pilia ang buffer sa imahe: Ang katuyoan sa pagpili mao nga makahimo ka daghang mga kinaiya sa imahe, mahimo’g adunay daghang buffer nga imahe, mahimo nimong pilion ang matag imahe nga imong gihimo.
void Paint_SelectImage(UBYTE *image) Parameter:
Imahe: ang ngalan sa buffer sa imahe, nga sa tinuud usa ka pointer sa una nga adres sa buffer sa imahe;
Pag-rotate sa Imahe: Itakda ang rotation Angle sa pinili nga hulagway, mas maayo human sa Paint_SelectImage(), mahimo nimong pilion nga i-rotate ang 0, 90, 180, 270.
walay pulos nga Paint_SetRotate(UWORD Rotate) Parameter:
I-rotate: ROTATE_0, ROTATE_90, ROTATE_180, ug ROTATE_270 katumbas sa 0, 90, 180, ug 270 degrees.
Image mirror flip: I-set ang mirror flip sa pinili nga hulagway. Dili ka makapili og salamin, pinahigda nga salamin, bertikal nga salamin, o salamin sa sentro sa imahe.
walay sulod Paint_SetMirroring(UBYTE salamin) Parameter:
Mirror: nagpaila sa image mirroring mode. MIRROR_NONE, MIRROR_HO RIZONTAL, MIRROR_VERTICAL, MIRROR_ORIGIN katumbas sa walay samin, horizont al nga salamin, bertikal nga samin, ug image center samin matag usa.
Itakda ang mga punto sa posisyon sa display ug kolor sa buffer: ania ang kinauyokan nga function sa GUI, posisyon sa pagpakita sa mga punto sa pagproseso ug kolor sa buffer.
void Paint_SetPixel(UWORD Xpoint, UWORD Ypoint, UWORD Color) Mga Parameter:
Xpoint: ang X nga posisyon sa usa ka punto sa buffer sa imahe Ypoint: Y nga posisyon sa usa ka punto sa buffer sa imahe Kolor: nagpakita sa Kolor sa tulbok
Kolor sa pagpuno sa buffer sa imahe: Gipuno ang buffer sa imahe sa usa ka kolor, kasagaran gigamit aron mahimong blangko ang screen.
walay sulod nga Paint_Clear(UWORD Color) Parameter:
Kolor: pun-on ang Kolor
Ang kolor sa pagpuno sa usa ka bintana sa buffer sa imahe: ang buffer sa imahe nga bahin sa bintana nga puno sa usa ka piho nga kolor, kasagaran gigamit aron bag-ohon ang screen aron mahimong blangko, kanunay gigamit alang sa pagpakita sa oras, presko sa katapusan nga segundo sa screen.
void Paint_ClearWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yen d, UWORD Color) Mga Parameter:
Xstart: ang x-starting coordinate sa bintana Ystart: ang y-starting coordinate sa window Xend: ang x-end coordinate sa window Yend: ang y-end coordinate sa bintana Kolor: pun-i ang Kolor
Pagdrowing og punto: Sa buffer sa imahe, pagdrowing og mga punto sa (Xpoint, Ypoint), mahimo nimong pilion ang kolor, ang gidak-on sa punto, ang estilo sa punto.
walay pulos nga Paint_DrawPoint(UWORD Xpoint, UWORD Ypoint, UWORD Color, DOT_PIXEL Do
t_Pixel, DOT_STYLE Dot_Style)
Parameter:
Xpoint: nagpakita sa X coordinate sa usa ka punto.
Ypoint: nagpakita sa Y coordinate sa usa ka punto.
Kolor: pun-on ang Kolor
Dot_Pixel: Ang gidak-on sa tulbok, ang demo naghatag ug 8 ka gidak-on nga puntos b
y default.
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: ang gidak-on sa usa ka punto nga molapad gikan sa sentro sa
punto o gikan sa ubos sa wala nga suok sa punto ngadto sa tuo ug pataas.
typedef enum {
DOT_FILL_AROUND = 1,
DOT_FILL_RIGHTUP,
} DOT_STYLE;
Pagdrowing og linya: Sa buffer sa imahe, pagdrowing og linya gikan sa (Xstart, Ystart) ngadto sa (Xend, Yend), makapili ka sa kolor, gilapdon ug estilo sa linya.
void Paint_DrawLine(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UW
Kolor sa ORD, LINE_STYLE Line_Style , LINE_STYLE Line_Style)
Parameter:
Xstart: ang x-start coordinate sa usa ka linya
Ystart: ang y-start coordinate sa linya
Xend: ang x-end coordinate sa usa ka linya
Yend: ang y-end coordinate sa usa ka linya
Kolor: pun-on ang Kolor
Line_width: Ang gilapdon sa linya, ang demo naghatag og 8 ka gidak-on sa wi
dth pinaagi sa default.
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: estilo sa linya. Pilia kung ang mga linya gidugtong ba ingon
tul-id o tul-id nga paagi.
typedef enum {
LINE_STYLE_SOLID = 0,
LINE_STYLE_DOTTED,
} LINE_STYLE;
Pagdrowing og rektanggulo: Sa buffer sa imahe, pagdrowing og rektanggulo gikan sa (Xstart, Ystart) ngadto sa (Xend, Yend), mahimo nimong pilion ang kolor, ang gilapdon sa linya, kung pun-on ang sulod sa rectangle.
void Paint_DrawRectangle(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yen
d, UWORD Color, DOT_PIXEL Line_width, DRAW_FILL Draw_Fill)
Parameter:
Xstart: ang pagsugod X coordinate sa rectangle
Ystart: ang pagsugod Y coordinate sa rectangle
Xend: ang x-end coordinate sa rectangle
Yend: ang y-end coordinate sa rectangle
Kolor: pun-on ang Kolor
Line_width: Ang gilapdon sa upat ka kilid sa usa ka rectangle. Ug ang de
Naghatag ang mo og 8 ka gidak-on sa gilapdon nga default.
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: Pun-a, kung pun-on ang sulod sa rectangle
typedef enum {
DRAW_PILL_EMPTY = 0,
DRAW_PILL_FULL,
} DRAW_PILL;
Pagdrowing og lingin: Sa buffer sa imahe, pagdrowing og lingin nga Radius nga adunay (X_Center Y_Center) isip sentro. Mahimo nimong pilion ang kolor, ang gilapdon sa linya, ug kung pun-on ang sulod sa lingin.
walay pulos ang Paint_DrawCircle(UWORD X_Center, UWORD Y_Center, UWORD Radius, UWORD
Kolor, DOT_PIXEL Line_width, DRAW_FILL Draw_Fill)
Parameter:
X_Center: ang x-coordinate sa sentro sa lingin
Y_Center: ang y-coordinate sa sentro sa lingin
Radius: nagpakita sa Radius sa usa ka lingin
Kolor: pun-on ang Kolor
Line_width: Ang gilapdon sa arko, nga adunay default nga 8 ka gilapdon
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: pun-a, kung pun-on ang sulod sa lingin
typedef enum {
DRAW_PILL_EMPTY = 0,
DRAW_PILL_FULL,
} DRAW_PILL;
Isulat ang karakter nga Ascii: Sa buffer sa imahe, gamita ang (Xstart Ystart) isip wala nga vertex, pagsulat og
Ascii nga kinaiya, mahimo nimong pilion ang Ascii visual character library, kolor sa foreground sa font, font
kolor sa background.
void Paint_DrawChar(UWORD Xstart, UWORD Ystart, const char Ascii_Char, sFO NT* Font, UWORD Color_Foreground, UWORD Color_Background) Mga Parameter:
Xstart: ang x-coordinate sa wala nga vertex sa usa ka karakter Ystart: ang Y-coordinate sa wala nga vertex sa usa ka karakter Ascii_Char: nagpaila sa Ascii character Font: Ascii visual character library, sa Fonts folder ang demo naghatag sa mosunod nga mga Font:
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: Font color Color_Background: nagpakita sa kolor sa background
Isulat ang English string: Sa buffer sa imahe, gamita ang (Xstart Ystart) isip wala nga vertex, pagsulat og a
string sa English nga mga karakter, mahimo nimong pilion ang Ascii visual character library, font
kolor sa atubangan, kolor sa background sa font.
void Paint_DrawString_EN(UWORD Xstart, UWORD Ystart, const char * pString, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background) Mga Parameter:
Xstart: ang x-coordinate sa wala nga vertex sa usa ka karakter Ystart: ang Y coordinate sa wala nga vertex sa font PSString: string, string kay pointer Font: Ascii visual character library, sa Fonts folder ang demo naghatag sa mosunod nga mga Font:
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: Font color Color_Background: nagpakita sa kolor sa background
Isulat ang Chinese string: sa image buffer, gamita ang (Xstart Ystart) isip left vertex, pagsulat og string sa Chinese characters, makapili ka ug character font, font foreground color, ug font background color sa GB2312 encoding.
void Paint_DrawString_CN(UWORD Xstart, UWORD Ystart, const char * pString, cFONT* font, UWORD Color_Foreground, UWORD Color_Background) Mga Parameter:
Xstart: ang x-coordinate sa wala nga vertex sa usa ka karakter Ystart: ang Y coordinate sa wala nga vertex sa font PSString: string, string kay pointer Font: GB2312 encoding character Font library, sa Fonts folder ang demo naghatag sa mosunod nga mga Font:
Font12CN: ASCII font 11*21, Chinese font 16*21 Font24CN: ASCII font24 *41, Chinese font 32*41 Color_Foreground: Font color Color_Background: nagpakita sa kolor sa background
Pagsulat og mga numero: Sa buffer sa imahe, gamita ang (Xstart Ystart) isip wala nga vertex, pagsulat og string
sa mga numero, mahimo nimong pilion ang Ascii visual character library, kolor sa foreground sa font, font
kolor sa background.
void Paint_DrawNum(UWORD Xpoint, UWORD Ypoint, dobleng Numero, sFONT* Fon t, UWORD Digit, UWORD Color_Foreground, UWORD Color_Background) Mga Parameter:
Xpoint: ang x-coordinate sa wala nga vertex sa usa ka karakter Ypoint: ang Y coordinate sa wala nga vertex sa font Numero: nagpakita sa numero nga gipakita, nga mahimong usa ka decimal Digit: Kini usa ka decimal nga numero Font: Ascii visual character library, sa Fonts folder ang demo naghatag sa mosunod nga mga Font:
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: Font color Color_Background: nagpakita sa kolor sa background
Panahon sa pagpakita: sa buffer sa imahe, gamita ang (Xstart Ystart) ingon ang wala nga vertex, oras sa pagpakita, ikaw
makapili ug Ascii visual character font, font foreground color, font background color.
void Paint_DrawTime(UWORD Xstart, UWORD Ystart, PAINT_TIME *pTime, sFONT* Font, UWORD Color_Background, UWORD Color_Foreground) Mga Parameter:
Xstart: ang x-coordinate sa wala nga vertex sa usa ka karakter Ystart: ang Y coordinate sa wala nga vertex sa font PTime: oras sa pagpakita, Ang istruktura sa oras gihubit dinhi, basta ang mga oras, minuto, ug segundo ipasa sa mga parameter ; Font: Ascii visual character library, sa Fonts folder ang demo naghatag sa mosunod nga mga Font:
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: Font color Color_Background: nagpakita sa kolor sa background
Basaha ang lokal nga bmp nga imahe ug isulat kini sa cache.
Alang sa mga operating system sa Linux sama sa Raspberry Pi, mahimo nimong basahon ug isulat ang mga litrato. Alang sa
Raspberry Pi, sa direktoryo: RaspberryPiclibGUIGUI_BMPfile.c(.h).
UBYTE GUI_ReadBmp(const char *path, UWORD Xstart, UWORD Ystart) parameter:
dalan: ang relatibong agianan sa BMP nga hulagway Xstart: Ang X coordinate sa wala nga vertex sa imahe, kasagaran 0 ang gipasa pinaagi sa default Ystart: Ang Y coordinate sa wala nga vertex sa hulagway, kasagaran ly 0 sa default
Testing Code alang sa mga Gumagamit Para sa Raspberry Pi, sa direktoryo: RaspberryPicexamples, alang sa tanan nga code sa pagsulay;
Kung kinahanglan nimo nga ipadagan ang 0.96-pulgada nga programa sa pagsulay sa LCD, kinahanglan nimo nga idugang ang 0.96 ingon usa ka parameter kung nagpadagan sa panguna nga demo. Ipatuman pag-usab sa Linux command mode sama sa mosunod:
limpyo paghimo sudo ./main 0.96
Ang Python (alang sa Raspberry Pi) Naglihok sa python ug python3. Para sa python, ang iyang mga tawag dili sama ka komplikado sa C. Raspberry Pi: RaspberryPipythonlib
lcdconfig.py Module initialization ug exit processing.
def module_init() def module_exit() Mubo nga sulat: 1. Ania ang pipila ka pagproseso sa GPIO sa dili pa ug human sa paggamit sa LCD screen. 2. Ang module_init() function awtomatik nga gitawag sa INIT () initi alizer sa LCD, apan ang module_exit() function kinahanglang tawagan sa kaugalingon.
GPIO pagbasa ug pagsulat:
def digital_write(pin, bili) def digital_read(pin)
SPI pagsulat data.
def spi_writebyte(data)
xxx_LCD_test.py (xxx nagpakita sa gidak-on, kon kini usa ka 0.96inch LCD, kini mao ang 0inch96_LCD_test.py, ug uban pa) python anaa sa mosunod nga direktoryo: Raspberry Pi: RaspberryPipythonexamples
Kung ang imong bersyon sa python kay python2 ug kinahanglan nimo nga ipadagan ang 0.96inch LCD test program, i-reexecute kini sama sa mosunod sa linux command mode:
sudo python 0inch96_LCD_test.py
Kung ang imong bersyon sa python kay python3 ug kinahanglan nimo nga ipadagan ang 0.96inch LCD test program, i-reexecute ang mosunod sa linux command mode:
sudo python3 0inch96_LCD_test.py
Mahitungod sa Rotation Settings Kung kinahanglan nimo nga i-set ang screen rotation sa python program, mahimo nimo kining i-set pinaagi sa statement im_r= image1.rotate(270).
im_r= image1.rotate(270)
Ang epekto sa rotation, kuhaa ang 1.54 ingon usa ka example, ang han-ay mao ang 0°, 90°, 180°, 270°
GUI Functions Ang Python adunay image library PIL opisyal nga link sa library , dili na kinahanglan nga magsulat og code gikan sa logical layer sama sa C ug direktang makatawag sa image library para sa pagproseso sa imahe. Ang mosunud magkuha usa ka 1.54-pulgada nga LCD ingon usa ka example, naghatag kami usa ka mubo nga paghulagway sa demo.
Kinahanglan nga gamiton ang librarya sa imahe ug i-install ang librarya.
sudo apt-get install python3-pil
Ug unya import sa librarya
gikan sa PIL import Image,ImageDraw,ImageFont.
Lakip niini, ang Image mao ang sukaranan nga librarya, ang ImageDraw mao ang function sa pagguhit, ug ang ImageFont mao ang function sa teksto.
Ipasabut ang usa ka cache sa imahe aron mapadali ang pagdrowing, pagsulat, ug uban pang mga gimbuhaton sa litrato.
image1 = Image.new("RGB", (disp.width, disp.height), "WHITE")
Ang una nga parameter naghubit sa giladmon sa kolor sa imahe, nga gihubit nga "1" aron ipakita ang bitmap sa usa ka gamay nga giladmon. Ang ikaduha nga parameter usa ka tuple nga naghubit sa gilapdon ug gitas-on sa imahe. Ang ikatulo nga parameter naghubit sa default nga kolor sa buffer, nga gihubit nga "PUTI".
Paghimo usa ka butang nga drowing base sa Image1 diin ang tanan nga mga operasyon sa pagguhit himuon dinhi.
drowing = ImageDraw.Draw(larawan1)
Pagdrowing og linya.
draw.line([(20, 10),(70, 60)], pun-on = “PULA”, gilapdon = 1)
Ang unang parametro usa ka upat ka elemento nga tuple sugod sa (0, 0) ug matapos sa (127,0). Pagdrowing og linya. Fill =”0″ nagpasabot nga puti ang kolor sa linya.
Pagdrowing og rectangle.
draw.rectangle([(20,10),(70,60)],fill = “WHITE”,outline=”BLACK”)
Ang unang argumento mao ang usa ka tuple sa upat ka mga elemento. Ang (20,10) mao ang coordinate value sa ibabaw nga wala nga suok sa rectangle, ug ang (70,60) mao ang coordinate value sa ubos nga tuo nga suok sa rectangle. Punan = "PUTI" nagpasabut nga BLACK sa sulod, ug outline = "BLACK" nagpasabut nga ang kolor sa outline itom.
Pagdrowing og lingin.
draw.arc((150,15,190,55),0, 360, pun-on =(0,255,0)
Pagdrowing og usa ka kinulit nga lingin diha sa kuwadrado, ang unang parametro maoy usa ka tuple sa 4 ka elemento, nga adunay (150, 15) isip ibabaw nga wala nga tumoy sa kuwadrado, (190, 55) isip ubos nga tuo nga tumoy sa kuwadrado, nga nagtino ang lebel sa median nga linya sa rectangular frame mao ang anggulo sa 0 degrees, ang ikaduha nga parameter nagpakita sa pagsugod nga anggulo, ang ikatulo nga parameter nagpakita sa katapusan nga anggulo, ug pun-on = 0 nagpakita nga ang kolor sa linya puti. Kung ang numero dili square sumala sa koordinasyon, makakuha ka usa ka ellipse. Gawas sa arc function, mahimo usab nimo gamiton ang chord function para sa pagdrowing og solidong lingin.
draw.ellipse((150,65,190,105), pun-on = 0)
Ang una nga parameter mao ang koordinasyon sa gilakip nga rectangle. Ang ikaduha ug ikatulo nga mga parameter mao ang sinugdanan ug katapusan nga mga ang-ang sa lingin. Ang ikaupat nga parametro mao ang kolor sa pagpuno sa lingin.
Kinaiya. Ang module sa ImageFont kinahanglan nga i-import ug i-instantiate:
Font1 = ImageFont.truetype(“../Font/Font01.ttf”,25) Font2 = ImageFont.truetype(“../Font/Font01.ttf”,35) Font3 = ImageFont.truetype(“../Font/ Font02.ttf”,32)
Mahimo nimong gamiton ang mga font sa Windows o uban pang mga font nga naa sa ttc format.. Pahinumdom: Ang matag librarya sa karakter adunay lainlaing mga karakter; Kung ang pipila ka mga karakter dili mapakita, girekomenda nga mahimo nimong i-refer ang encoding set ro gigamit. Aron magdrowing og English nga mga karakter, mahimo nimong gamiton direkta ang mga font; para sa Chinese nga mga karakter, kinahanglan ka magdugang og simbolo u:
draw.text((40, 50), 'WaveShare', fill = (128,255,128),font=Font2) text= u”” draw.text((74, 150),text, fill = “WHITE”,font=Font3 )
Ang unang parametro usa ka tuple sa 2 ka elemento, nga adunay (40, 50) isip wala nga vertex, ang font mao ang Font2, ug ang pun-on mao ang kolor sa font. Mahimo nimo nga direkta nga himuon ang pagpuno = "PUTI", tungod kay ang naandan nga kantidad sa kolor gihubit na Maayo, siyempre, mahimo usab nimo gamiton ang fill = (128,255,128), ang mga parentheses katumbas sa mga kantidad sa tulo nga mga kolor sa RGB aron tukma nimo nga makontrol. ang kolor nga imong gusto. Ang ikaduhang sentence nagpakita sa Micro Snow Electronics, gamit ang Font3, puti ang kolor sa font.
basaha ang lokal nga imahe
hulagway = Image.open('../pic/LCD_1inch28.jpg')
Ang parameter mao ang agianan sa imahe. Ubang mga gimbuhaton.
Para sa dugang nga impormasyon, mahimo nimong tan-awon ang http://effbot.org/imagingbook pil
Gigamit sa STM32
Deskripsyon sa software
Ang demo gihimo base sa HAL library. I-download ang demo, pangitaa ang STM32 nga programa file direktoryo, ug ablihi ang LCD_demo.uvprojx sa STM32STM32F103RBT6MDK-ARM nga direktoryo aron masusi ang programa.
Ablihi ang main.c, makita nimo ang tanan nga mga programa sa pagsulay, kuhaa ang mga komento sa atubangan sa mga programa sa pagsulay sa katugbang nga screen, ug i-compile ug i-download.
LCD_0in96_test() 0.96inch LCD test program LCD_1in14_test() 1.14inch LCD test program LCD_1in28_test() 1.28inch LCD test program LCD_1in3_test() 1.3inch LCD test program LCD_1in54_test() 1.54inch LCD test program_1inch8 LCD test program_1.8inch ) 2inch LCD test nga programa
Deskripsyon sa programa
Ang sukaranan nga interface sa hardware
Matang sa datos
#define UBYTE #define UWORD #define UDOUBLE
uint8_t uint16_t uint32_t
Pag-initialize sa module ug pagproseso sa paggawas
UBYTE System_Init(walay sulod); void System_Exit(walay sulod); Mubo nga sulat: 1. ania ang pipila ka pagproseso sa GPIO sa wala pa ug pagkahuman sa paggamit sa LCD screen. 2. Human magamit ang System_Exit(void) function, ang OLED display ma-t urned off;
Isulat ug basaha ang GPIO
walay UBYTE
DEV_Digital_Write(UWORD Pin, UBYTE Value); DEV_Digital_Read(UWORD Pin);
SPI pagsulat data
UBYTE SPI4W_Write_Byte(uint8_t value);
Ang taas nga aplikasyon
Alang sa screen, kung kinahanglan nimo nga magdrowing og mga hulagway, magpakita sa Chinese ug English nga mga karakter, magpakita og mga hulagway, ug uban pa, mahimo nimong gamiton ang ibabaw nga aplikasyon nga buhaton, ug naghatag kami og pipila ka mga batakang gimbuhaton dinhi mahitungod sa pipila ka pagproseso sa mga graphic sa direktoryo nga STM32STM32F103RBUserGUI_DEVGUI_Paint.c( .h) Pahinumdom: Tungod sa gidak-on sa internal nga RAM sa STM32 ug arduino, ang GUI direktang gisulat sa RAM sa LCD.
Ang font sa karakter nga nagsalig sa GUI naa sa direktoryo nga STM32STM32F103RBUserFonts
Bag-ong Image Properties: Paghimo og bag-ong image property, kini nga property naglakip sa image buffer name, width, height, flip Angle, color.
void Paint_NewImage(UWORD Width, UWORD Height, UWORD Rotate, UWORD Color) Mga Parameter:
Lapad: hulagway buffer Lapad; Gitas-on: ang Gitas-on sa buffer sa imahe; Pag-rotate: Nagpakita sa rotation Anggulo sa usa ka imahe Kolor: ang inisyal nga Kolor sa imahe;
Ibutang ang tin-aw nga function sa screen, kasagaran tawagan ang tin-aw nga function sa LCD direkta.
walay kapuslanan ang Paint_SetClearFuntion(walay sulod (* Klaro)(UWORD)); parameter:
Tin-aw : Pointer ngadto sa tin-aw nga screen function, gigamit sa madali paghawan sa screen ngadto sa usa ka piho nga kolor;
Itakda ang drowing pixel function
void Paint_SetDisplayFuntion(walay (*Display)(UWORD,UWORD,UWORD)); parameter:
Display: Pointer sa pixel drawing function, nga gigamit sa pagsulat sa data ngadto sa piho nga lokasyon sa internal RAM sa LCD;
Pilia ang buffer sa imahe: ang katuyoan sa pagpili mao nga makahimo ka og daghang mga hiyas sa imahe, ang buffer sa imahe mahimong adunay daghang, mahimo nimong pilion ang matag imahe nga imong gihimo.
void Paint_SelectImage(UBYTE *image) Parameter:
Imahe: ang ngalan sa cache sa imahe, nga sa tinuud usa ka pointer sa una nga adres sa buffer sa imahe
Pag-rotate sa Imahe: Itakda ang gipili nga Anggulo sa rotation sa imahe, mas maayo pagkahuman sa Paint_SelectImage(), mahimo nimong pilion nga i-rotate ang 0, 90, 180, 270.
walay pulos nga Paint_SetRotate(UWORD Rotate) Parameter:
I-rotate: ROTATE_0, ROTATE_90, ROTATE_180, ug ROTATE_270 katumbas sa 0, 90, 180, ug 270 degrees matag usa;
Image mirror flip: I-set ang mirror flip sa pinili nga hulagway. Dili ka makapili og salamin, pinahigda nga salamin, bertikal nga salamin, o salamin sa sentro sa imahe.
walay sulod Paint_SetMirroring(UBYTE salamin) Parameter:
Mirror: nagpaila sa image mirroring mode. MIRROR_NONE, MIRROR_HORIZO NTAL, MIRROR_VERTICAL, MIRROR_ORIGIN tugbang sa walay samin, horizontal m irror, bertikal salamin, ug mahitungod sa image center samin matag usa.
Itakda ang mga punto sa display nga posisyon ug kolor sa buffer: ania ang kinauyokan nga function sa GUI, ang mga punto sa pagproseso nagpakita sa posisyon ug kolor sa buffer.
void Paint_SetPixel(UWORD Xpoint, UWORD Ypoint, UWORD Color) Mga Parameter:
Xpoint: ang X nga posisyon sa usa ka punto sa buffer sa imahe Ypoint: Y nga posisyon sa usa ka punto sa buffer sa imahe Kolor: nagpakita sa Kolor sa tulbok
Kolor sa pagpuno sa buffer sa imahe: Gipuno ang buffer sa imahe sa usa ka kolor, kasagaran gigamit aron mahimong blangko ang screen.
walay sulod nga Paint_Clear(UWORD Color) Parameter:
Kolor: pun-on ang Kolor
Ang buffer sa imahe nga bahin sa kolor sa pagpuno sa bintana: ang buffer sa imahe nga bahin sa bintana nga puno sa usa ka piho nga kolor, kasagaran ingon usa ka function sa pagpaputi sa bintana, kanunay nga gigamit alang sa pagpakita sa oras, pagpaputi sa usa ka segundo.
void Paint_ClearWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yen d, UWORD Color) Mga Parameter:
Xstart: ang x-starting coordinate sa bintana Ystart: nagpaila sa Y nga punto sa pagsugod sa bintana Xend: ang x-end coordinate sa window Yend: nagpaila sa y-end coordinate sa bintana Kolor: pun-a ang Kolor
Pagdrowing og mga punto: Sa buffer sa imahe, pagdrowing og mga punto sa (Xpoint, Ypoint), mahimo nimong pilion ang kolor, ang gidak-on sa punto, ang estilo sa punto.
walay pulos nga Paint_DrawPoint(UWORD Xpoint, UWORD Ypoint, UWORD Color, DOT_PIXEL Do
t_Pixel, DOT_STYLE Dot_Style)
Parameter:
Xpoint: nagpakita sa X coordinate sa usa ka punto
Ypoint: nagpakita sa Y coordinate sa usa ka punto
Kolor: pun-on ang Kolor
Dot_Pixel: Ang gidak-on sa tulbok, naghatag ug default nga walo ka gidak-on nga punto
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: ang gidak-on sa usa ka punto nga molapad gikan sa sentro sa poi
nt o gikan sa ubos sa wala nga suok sa punto ngadto sa tuo ug pataas
typedef enum {
DOT_FILL_AROUND = 1,
DOT_FILL_RIGHTUP,
} DOT_STYLE;
Pagdrowing sa linya: Sa buffer sa imahe, linya gikan sa (Xstart, Ystart) hangtod sa (Xend, Yend), mahimo nimong pilion ang kolor, gilapdon sa linya, istilo sa linya.
void Paint_DrawLine(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UW
Kolor sa ORD, LINE_STYLE Line_Style , LINE_STYLE Line_Style)
Parameter:
Xstart: ang x-start coordinate sa usa ka linya
Ystart: nagpakita sa Y nga punto sa pagsugod sa usa ka linya
Xend: x-terminus sa usa ka linya
Yend: ang y-end coordinate sa usa ka linya
Kolor: pun-on ang Kolor
Line_width: Ang gilapdon sa linya, nga naghatag ug default nga walo ka w
mga idth
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: estilo sa linya. Pilia kung ang mga linya gidugtong sa usa ka strai
ght o dashed nga paagi
typedef enum {
LINE_STYLE_SOLID = 0,
LINE_STYLE_DOTTED,
} LINE_STYLE;
Pagdrowing og rektanggulo: Sa buffer sa imahe, pagdrowing og rektanggulo gikan sa (Xstart, Ystart) ngadto sa (Xend, Yend), mahimo nimong pilion ang kolor, ang gilapdon sa linya, kung pun-on ang sulod sa rectangle.
void Paint_DrawRectangle(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yen
d, UWORD Color, DOT_PIXEL Line_width, DRAW_FILL Draw_Fill)
Parameter:
Xstart: ang pagsugod X coordinate sa rectangle
Ystart: nagpakita sa Y nga punto sa pagsugod sa rectangle
Xend: X terminal sa rectangle
Yend: nagtino sa y-end coordinate sa rectangle
Kolor: pun-on ang Kolor
Line_width: Ang gilapdon sa upat ka kilid sa usa ka rectangle. Default ei
ght gilapdon gihatag
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: Pun-a, kung pun-on ang sulod sa rectangle
typedef enum {
DRAW_PILL_EMPTY = 0,
DRAW_PILL_FULL,
} DRAW_PILL;
Pagdrowing og lingin: Sa buffer sa imahe, pagdrowing og lingin nga Radius nga adunay (X_Center Y_Center) isip sentro. Mahimo nimong pilion ang kolor, ang gilapdon sa linya, ug kung pun-on ang sulod sa lingin.
walay pulos ang Paint_DrawCircle(UWORD X_Center, UWORD Y_Center, UWORD Radius, UWORD
Kolor, DOT_PIXEL Line_width, DRAW_FILL Draw_Fill)
Parameter:
X_Center: ang x-coordinate sa sentro sa usa ka lingin
Y_Center: Y coordinate sa sentro sa usa ka lingin
Radius: nagpakita sa Radius sa usa ka lingin
Kolor: pun-on ang Kolor
Line_width: Ang gilapdon sa arko, nga adunay default nga 8 ka gilapdon
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: pun-a, kung pun-on ang sulod sa lingin
typedef enum {
DRAW_PILL_EMPTY = 0,
DRAW_PILL_FULL,
} DRAW_PILL;
Isulat ang karakter nga Ascii: Sa buffer sa imahe, sa (Xstart Ystart) isip wala nga vertex, pagsulat og
Ascii nga kinaiya, mahimo nimong pilion ang Ascii visual character library, kolor sa foreground sa font, font
kolor sa background.
void Paint_DrawChar(UWORD Xstart, UWORD Ystart, const char Ascii_Char, sFO NT* Font, UWORD Color_Foreground, UWORD Color_Background) Mga Parameter:
Xstart: ang x-coordinate sa wala nga vertex sa usa ka karakter Ystart: ang Y coordinate sa wala nga vertex sa font Ascii_Char: nagpaila sa Ascii nga karakter Font: Ascii visual character library, sa Fonts folder naghatag sa mosunod nga mga Font:
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: Font color Color_Background: nagpakita sa kolor sa background
Isulat ang English string: Sa buffer sa imahe, gamita ang (Xstart Ystart) isip wala nga vertex, pagsulat og a
string sa English nga mga karakter, makapili sa Ascii visual character library, font foreground
kolor, kolor sa background sa font.
void Paint_DrawString_EN(UWORD Xstart, UWORD Ystart, const char * pString, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background) Mga Parameter:
Xstart: ang x-coordinate sa wala nga vertex sa usa ka karakter Ystart: ang Y coordinate sa wala nga vertex sa font PSString: string, string kay pointer Font: Ascii visual character library, sa Fonts folder naghatag sa mosunod nga mga Font:
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: Font color Color_Background: nagpakita sa kolor sa background
Isulat ang Chinese string: sa image buffer, gamita ang (Xstart Ystart) isip left vertex, pagsulat og string sa Chinese characters, mahimo nimong pilion ang GB2312 encoding character font, font foreground color, font background color.
void Paint_DrawString_CN(UWORD Xstart, UWORD Ystart, const char * pString, cFONT* font, UWORD Color_Foreground, UWORD Color_Background) Mga Parameter:
Xstart: ang x-coordinate sa wala nga vertex sa usa ka karakter Ystart: ang Y coordinate sa wala nga vertex sa font PSString: string, string kay pointer Font: GB2312 encoding character Font library, sa Fonts folder naghatag sa mosunod nga mga Font:
Font12CN: ASCII font 11*21, Chinese font 16*21 Font24CN: ASCII font24 *41, Chinese font 32*41 Color_Foreground: Font color Color_Background: nagpakita sa kolor sa background
Pagsulat og mga numero: Sa buffer sa imahe, gamita ang (Xstart Ystart) isip wala nga vertex, pagsulat og string
sa mga numero, mahimo nimong pilion ang Ascii visual character library, kolor sa foreground sa font, font
kolor sa background.
void Paint_DrawNum(UWORD Xpoint, UWORD Ypoint, dobleng Numero, sFONT* Fon t, UWORD Digit, UWORD Color_Foreground, UWORD Color_Background) Mga Parameter:
Xpoint: ang x-coordinate sa wala nga vertex sa usa ka karakter Ypoint: ang Y coordinate sa wala nga vertex sa font Numero: nagpakita sa numero nga gipakita, nga mahimong usa ka decimal Digit: Kini usa ka decimal nga numero Font: Ascii visual character library, sa Fonts folder naghatag sa mosunod nga mga Font:
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: Font color Color_Background: nagpakita sa kolor sa background
Panahon sa pagpakita: sa buffer sa imahe, gamita ang (Xstart Ystart) ingon ang wala nga vertex, oras sa pagpakita, ikaw
makapili ug Ascii visual character font, font foreground color, font background color.
void Paint_DrawTime(UWORD Xstart, UWORD Ystart, PAINT_TIME *pTime, sFONT* Font, UWORD Color_Background, UWORD Color_Foreground) Mga Parameter:
Xstart: ang x-coordinate sa wala nga vertex sa usa ka karakter Ystart: ang Y coordinate sa wala nga vertex sa font PTime: oras sa pagpakita, dinhi gihubit ang usa ka maayong istruktura sa oras, basta ang oras, minuto ug segundo nga mga tipik sa datos sa parametro; Font: Ascii visual character library, sa Fonts folder naghatag sa mosunod nga mga Font:
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: Font color Color_Background: nagpakita sa kolor sa background
Deskripsyon sa Arduino software
Mubo nga sulat: Ang mga demo tanan gisulayan sa Arduino uno. Kung kinahanglan nimo ang ubang mga lahi sa Arduino, kinahanglan nimo nga mahibal-an kung husto ba ang konektado nga mga pin.
Pagdagan nga programa
Sa produkto encyclopedia interface i-download ang programa , ug dayon unzip kini. Ang programa sa Arduino nahimutang sa ~/Arduino/…
Palihug pilia ang katugbang nga programa sumala sa modelo sa LCD screen aron maablihan.
Mahimo nimo view mga programa sa pagsulay alang sa tanan nga gidak-on sa screen, gisunud sumala sa gidak-on:
Kay exampug, 1.54inch LCD Module. Ablihi ang LCD_1inch54 folder ug dagan ang LCD_1inch54.ino file. Ablihi ang programa, pilia ang modelo sa development board nga Arduino UNO.
Pilia ang katugbang nga COM port
Unya i-klik sa pag-compile ug pag-download
Pagpaila sa Dokumento sa Deskripsyon sa Programa
Kuhaa ang Arduino UNO nga nagkontrol sa usa ka 1.54-pulgada nga LCD ingon usa ka example, ablihi ang ArduinoLCD_1inch54 nga direktoryo:
Sa diin: LCD_1inch54.ino: abli sa Arduino IDE; LCD_Driver.cpp(.h): mao ang drayber sa LCD screen; DEV_Config.cpp(.h): Kini ang kahulugan sa interface sa hardware, nga naglangkob sa pagbasa ug pagsulat sa lebel sa pin, data sa transmission sa SPI, ug pagsugod sa pin; font8.cpp, font12.cpp, font16.cpp, font20.cpp, font24.cpp, font24CN.cpp, fonts.h: mga font para sa mga karakter nga lainlain ang gidak-on; image.cpp(.h): mao ang data sa hulagway, nga maka-convert sa bisan unsang BMP nga hulagway ngadto sa 16-bit true color array nga hulagway pinaagi sa Img2Lcd (ma-download sa development data). Ang programa gibahin sa bottom-layer hardware interface, middle-layer LCD screen driver, ug upper-layer application;
Ang sukaranan nga interface sa hardware
Ang interface sa hardware gihubit sa duha files DEV_Config.cpp(.h), ug ang mga gimbuhaton sama sa pagbasa ug pagsulat sa lebel sa pin, paglangan, ug pagpasa sa SPI gisulod.
isulat ang lebel sa pin
void DEV_Digital_Write(int pin, int value)
Ang una nga parameter mao ang pin, ug ang ikaduha mao ang taas ug ubos nga lebel. Basaha ang lebel sa pin
int DEV_Digital_Read(int pin)
Ang parameter mao ang pin, ug ang kantidad sa pagbalik mao ang lebel sa gibasa nga pin. Paglangan
DEV_Delay_ms(unsigned int delaytime)
paglangan sa lebel sa millisecond. SPI output data
DEV_SPI_WRITE(unsigned char data)
Ang parameter mao ang tipo sa char, nga nag-okupar sa 8 bits. Ang taas nga aplikasyon
Alang sa screen, kung kinahanglan nimo nga magdrowing og mga hulagway, magpakita sa Chinese ug English nga mga karakter, magpakita og mga hulagway, ug uban pa, mahimo nimong gamiton ang ibabaw nga aplikasyon nga buhaton, ug naghatag kami og pipila ka mga batakang gimbuhaton dinhi mahitungod sa pipila ka pagproseso sa mga graphic sa direktoryo nga GUI_Paint.c( .h) Pahinumdom: Tungod sa gidak-on sa internal nga RAM sa STM32 ug Arduino, ang GUI direktang gisulat sa RAM sa LCD.
Ang mga font nga gigamit sa GUI nagdepende tanan sa font*.cpp(h) files ubos sa sama nga file
Bag-ong Image Properties: Paghimo og bag-ong image property, kini nga property naglakip sa image buffer name, width, height, flip Angle, ug color.
void Paint_NewImage(UWORD Width, UWORD Height, UWORD Rotate, UWORD Color) Mga Parameter:
Lapad: hulagway buffer Lapad; Gitas-on: ang Gitas-on sa buffer sa imahe; Pag-rotate: Nagpakita sa rotation Anggulo sa usa ka imahe Kolor: ang inisyal nga Kolor sa imahe;
Ibutang ang tin-aw nga function sa screen, kasagaran tawagan ang tin-aw nga function sa LCD direkta.
walay kapuslanan ang Paint_SetClearFuntion(walay sulod (* Klaro)(UWORD)); parameter:
Tin-aw: Pointer sa tin-aw nga screen function, gigamit sa madali paghawan sa screen ngadto sa usa ka kolor;
Itakda ang drowing pixel function.
void Paint_SetDisplayFuntion(walay (*Display)(UWORD,UWORD,UWORD)); parameter:
Display: Pointer sa pixel drawing function, nga gigamit sa pagsulat sa data ngadto sa piho nga lokasyon sa internal RAM sa LCD;
Pilia ang buffer sa imahe: ang katuyoan sa pagpili mao nga makahimo ka daghang mga hiyas sa imahe, ang buffer sa imahe mahimong adunay daghang, ug mahimo nimong pilion ang matag imahe nga imong gihimo.
void Paint_SelectImage(UBYTE *image) Parameter:
Imahe: ang ngalan sa cache sa imahe, nga sa tinuud usa ka pointer sa una nga adres sa buffer sa imahe
Pag-rotate sa Imahe: Itakda ang gipili nga Anggulo sa rotation sa imahe, mas maayo pagkahuman sa Paint_SelectImage(), mahimo nimong pilion nga i-rotate ang 0, 90, 180, 270.
walay pulos nga Paint_SetRotate(UWORD Rotate) Parameter:
I-rotate: ROTATE_0, ROTATE_90, ROTATE_180, ug ROTATE_270 katumbas sa 0, 90, 180, ug 270 degrees matag usa;
Image mirror flip: I-set ang mirror flip sa pinili nga hulagway. Dili ka makapili og salamin, pinahigda nga salamin, bertikal nga salamin, o salamin sa sentro sa imahe.
walay sulod Paint_SetMirroring(UBYTE salamin) Parameter:
Mirror: nagpaila sa image mirroring mode. MIRROR_NONE, MIRROR_HORIZO NTAL, MIRROR_VERTICAL, MIRROR_ORIGIN tugbang sa walay samin, horizontal m irror, bertikal salamin, ug mahitungod sa image center samin matag usa.
Itakda ang mga punto sa display nga posisyon ug kolor sa buffer: ania ang kinauyokan nga function sa GUI, ang mga punto sa pagproseso nagpakita sa posisyon ug kolor sa buffer.
void Paint_SetPixel(UWORD Xpoint, UWORD Ypoint, UWORD Color) Mga Parameter:
Xpoint: ang X nga posisyon sa usa ka punto sa buffer sa imahe Ypoint: Y nga posisyon sa usa ka punto sa buffer sa imahe Kolor: nagpakita sa Kolor sa tulbok
Kolor sa pagpuno sa buffer sa imahe: Gipuno ang buffer sa imahe sa usa ka kolor, kasagaran gigamit aron mahimong blangko ang screen.
void Paint_ClearWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yen d, UWORD Color) Mga Parameter:
Xstart: ang x-starting coordinate sa bintana Ystart: nagpaila sa Y nga punto sa pagsugod sa bintana Xend: ang x-end coordinate sa window Yend: nagpaila sa y-end coordinate sa bintana Kolor: pun-a ang Kolor
Pagdrowing og mga punto: Sa buffer sa imahe, pagdrowing og mga punto sa (Xpoint, Ypoint), mahimo nimong pilion ang kolor, ang gidak-on sa punto, ang estilo sa punto.
walay pulos nga Paint_DrawPoint(UWORD Xpoint, UWORD Ypoint, UWORD Color, DOT_PIXEL Do
t_Pixel, DOT_STYLE Dot_Style)
Parameter:
Xpoint: nagpakita sa X coordinate sa usa ka punto
Ypoint: nagpakita sa Y coordinate sa usa ka punto
Kolor: pun-on ang Kolor
Dot_Pixel: Ang gidak-on sa tulbok, naghatag ug default nga walo ka gidak-on nga punto
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: ang gidak-on sa usa ka punto nga molapad gikan sa sentro sa poi
nt o gikan sa ubos sa wala nga suok sa punto ngadto sa tuo ug pataas
typedef enum {
DOT_FILL_AROUND = 1,
DOT_FILL_RIGHTUP,
} DOT_STYLE;
Pagdrowing sa linya: Sa buffer sa imahe, linya gikan sa (Xstart, Ystart) hangtod sa (Xend, Yend), mahimo nimong pilion ang kolor, gilapdon sa linya, istilo sa linya.
void Paint_DrawLine(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UW
Kolor sa ORD, LINE_STYLE Line_Style , LINE_STYLE Line_Style)
Parameter:
Xstart: ang x-start coordinate sa usa ka linya
Ystart: nagpakita sa Y nga punto sa pagsugod sa usa ka linya
Xend: x-terminus sa usa ka linya
Yend: ang y-end coordinate sa usa ka linya
Kolor: pun-on ang Kolor
Line_width: Ang gilapdon sa linya, nga naghatag ug default sa eig
ht gilapdon
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: estilo sa linya. Pilia kung ang mga linya gidugtong ba ingon
tul-id o tul-id nga paagi
typedef enum {
LINE_STYLE_SOLID = 0,
LINE_STYLE_DOTTED,
} LINE_STYLE;
Pagdrowing og rectangle: Sa buffer sa imahe, pagdrowing og rectangle gikan sa (Xstart, Ystart) ngadto sa (Xend, Yend), mahimo nimong pilion ang kolor, gilapdon sa linya, ug kung pun-on ang sulod sa rectangle.
void Paint_DrawRectangle(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yen
d, UWORD Color, DOT_PIXEL Line_width, DRAW_FILL Draw_Fill)
Parameter:
Xstart: ang pagsugod X coordinate sa rectangle
Ystart: nagpakita sa Y nga punto sa pagsugod sa rectangle
Xend: X terminal sa rectangle
Yend: nagtino sa y-end coordinate sa rectangle
Kolor: pun-on ang Kolor
Line_width: Ang gilapdon sa upat ka kilid sa usa ka rectangle. Default ei
ght gilapdon gihatag
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: Pun-a, kung pun-on ang sulod sa rectangle
typedef enum {
DRAW_PILL_EMPTY = 0,
DRAW_PILL_FULL,
} DRAW_PILL;
Pagdrowing og lingin: Sa buffer sa imahe, pagdrowing og lingin nga Radius nga adunay (X_Center Y_Center) isip sentro. Mahimo nimong pilion ang kolor, ang gilapdon sa linya, ug kung pun-on ang sulod sa lingin.
walay pulos ang Paint_DrawCircle(UWORD X_Center, UWORD Y_Center, UWORD Radius, UWORD
Kolor, DOT_PIXEL Line_width, DRAW_FILL Draw_Fill)
Parameter:
X_Center: ang x-coordinate sa sentro sa usa ka lingin
Y_Center: Y coordinate sa sentro sa usa ka lingin
Radius: nagpakita sa Radius sa usa ka lingin
Kolor: pun-on ang Kolor
Line_width: Ang gilapdon sa arko, nga adunay default nga 8 ka gilapdon
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: pun-a, kung pun-on ang sulod sa lingin
typedef enum {
DRAW_PILL_EMPTY = 0,
DRAW_PILL_FULL,
} DRAW_PILL;
Isulat ang karakter nga Ascii: Sa buffer sa imahe, sa (Xstart Ystart) isip wala nga vertex, pagsulat og
Ascii nga kinaiya, mahimo nimong pilion ang Ascii visual character library, kolor sa foreground sa font, font
kolor sa background.
void Paint_DrawChar(UWORD Xstart, UWORD Ystart, const char Ascii_Char, sFO NT* Font, UWORD Color_Foreground, UWORD Color_Background) Mga Parameter:
Xstart: ang x-coordinate sa wala nga vertex sa usa ka karakter Ystart: ang Y coordinate sa wala nga vertex sa font Ascii_Char: nagpaila sa Ascii nga karakter Font: Ascii visual character library, sa Fonts folder naghatag sa mosunod nga mga Font:
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: Font color Color_Background: nagpakita sa kolor sa background
Isulat ang English string: Sa buffer sa imahe, gamita ang (Xstart Ystart) isip wala nga vertex, pagsulat og a
string sa English nga mga karakter, makapili sa Ascii visual character library, font foreground
kolor, kolor sa background sa font.
void Paint_DrawString_EN(UWORD Xstart, UWORD Ystart, const char * pString, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background) Mga Parameter:
Xstart: ang x-coordinate sa wala nga vertex sa usa ka karakter Ystart: ang Y coordinate sa wala nga vertex sa font PSString: string, string kay pointer Font: Ascii visual character library, sa Fonts folder naghatag sa mosunod nga mga Font:
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: Font color Color_Background: nagpakita sa kolor sa background
Isulat ang Chinese string: sa image buffer, gamita ang (Xstart Ystart) isip left vertex, pagsulat og string sa Chinese characters, mahimo nimong pilion ang GB2312 encoding character font, font foreground color, font background color.
void Paint_DrawString_CN(UWORD Xstart, UWORD Ystart, const char * pString, cFONT* font, UWORD Color_Foreground, UWORD Color_Background) Mga Parameter:
Xstart: ang x-coordinate sa wala nga vertex sa usa ka karakter Ystart: ang Y coordinate sa wala nga vertex sa font PSString: string, string kay pointer Font: GB2312 encoding character Font library, sa Fonts folder naghatag sa mosunod nga mga Font:
Font12CN: ASCII font 11*21, Chinese font 16*21 Font24CN: ASCII font24 *41, Chinese font 32*41 Color_Foreground: Font color Color_Background: nagpakita sa kolor sa background
Pagsulat og mga numero: Sa buffer sa imahe, gamita ang (Xstart Ystart) isip wala nga vertex, pagsulat og string
sa mga numero, mahimo nimong pilion ang Ascii visual character library, kolor sa foreground sa font, font
kolor sa background.
void Paint_DrawNum(UWORD Xpoint, UWORD Ypoint, dobleng Numero, sFONT* Fon t, UWORD Digit, UWORD Color_Foreground, UWORD Color_Background) Mga Parameter:
Xpoint: ang x-coordinate sa wala nga vertex sa usa ka karakter Ypoint: ang Y coordinate sa wala nga vertex sa font Numero: nagpakita sa numero nga gipakita, nga mahimong usa ka decimal Digit: Kini usa ka decimal nga numero Font: Ascii visual character library, sa Fonts folder naghatag sa mosunod nga mga Font:
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: Font color Color_Background: nagpakita sa kolor sa background
Pagsulat og mga numero nga adunay mga desimal: sa (Xstart Ystart) isip wala nga vertex, pagsulat og usa ka string sa
mga numero nga adunay mga desimal, mahimo nimong pilion ang Ascii code visual character font, font sa atubangan
kolor, kolor sa background sa font
void Paint_DrawFloatNum(UWORD Xpoint, UWORD Ypoint, dobleng Numero, UBYTE Decimal_Point, sFONT* Font, UWORD Color_Foreground, UWORD Color_Backgroun d); parameter:
Xstart: ang X coordinate sa wala nga vertex sa karakter Ystart: Y coordinate sa wala nga vertex sa font Numero: ang gipakita nga numero, nga gitipigan sa double type dinhi Decimal_Point: Nagpakita sa gidaghanon sa mga digit human sa decimal nga po int Font: Ascii code visual character font library, ang mosunod nga mga font gihatag sa Fonts folder:
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: kolor sa font Color_Background: kolor sa background
Panahon sa pagpakita: sa buffer sa imahe, gamita ang (Xstart Ystart) ingon ang wala nga vertex, oras sa pagpakita, ikaw
makapili ug Ascii visual character font, font foreground color, font background color.
void Paint_DrawTime(UWORD Xstart, UWORD Ystart, PAINT_TIME *pTime, sFONT* Font, UWORD Color_Background, UWORD Color_Foreground) Mga Parameter:
Xstart: ang x-coordinate sa wala nga vertex sa usa ka karakter Ystart: ang Y coordinate sa wala nga vertex sa font PTime: oras sa pagpakita, dinhi gihubit ang usa ka maayong istruktura sa oras, basta ang oras, minuto ug segundo nga mga tipik sa datos sa parameter ; Font: Ascii visual character library, sa Fonts folder naghatag sa mosunod nga mga Font:
Font8: 5*8 font Font12: 7*12 font Font16: 11*16 font Font20: 14*20 font Font24: 17*24 font Color_Foreground: Font color Color_Background: nagpakita sa kolor sa background
Ipakita ang hulagway: sa (Xstart Ystart) isip wala nga vertex, ipakita ang usa ka hulagway kansang gilapdon mao ang W_Image ug ang gitas-on mao ang H_Image;
void Paint_DrawImage(const unsigned char *image, UWORD xStart, UWORD yStar t, UWORD W_Image, UWORD H_Image) parameter:
imahe: adres sa imahe, nagtudlo sa impormasyon sa imahe nga gusto nimo ipakita
Xstart: ang X coordinate sa wala nga vertex sa karakter Ystart: Y coordinate sa wala nga vertex sa font W_Image: Image width H_Image: Image height
Panan-awonLima2
Mapasibo nga Modelo
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
Koneksyon sa Hardware
Panan-awonFive2 Pin Koneksyon
LCD VCC GND DIN CLK
CS DC RST BL
VisionFive2 Board Pin No. 3.3V GND 19 23 24 22 13 12
I-install ang Katugbang nga mga Librarya
apt-get install pip pip install VisionFive.gpio apt-get install python3-numpy apt-get install python3-pil
Pag-download sa Demo
apt-get install 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/example/
Pagdalagan ang Katugbang nga Demo Sumala sa Screen nga Imong Gipalit
python3 0inch96_LCD_test.py python3 1inch14_LCD_test.py python3 1inch28_LCD_test.py python3 1inch3_LCD_test.py python3 1inch54_LCD_test.py python3 1inch8_LCD_test.py_LCD_test.py_LCD_test3inch
Kapanguhaan
Mga dokumento
Ischematic IL9341 Datasheet
Software
Hulagway2Lcd
Mga demo code
Mga demo code
3D nga Dibuho
2.4inch LCD Module 3D Drawing
2D nga Dibuho
2.4inch LCD Module 2D Drawing
FAQ
'Pangutana:'1.Ang LCD blangko kung gamiton sa Raspberry Pi? tubag:
a) Siguruha nga imong gipagana ang interface sa SPI b) Susiha ang output sa BL pin, kung wala kini bisan unsang kantidad, palihug sulayi nga idiskonekta kini.
'Pangutana:'2.Unsaon pag-usab sa orientation sa display
Tubag: Kung mogamit ka sa mga C code, mahimo nimong gamiton ang Paint_SetRotate(Rotate) function aron itakda ang orientation sa display, 0°, 90°, 180°, ug 270° lamang ang anaa.
Kung mogamit ka ug Python code, mahimo nimong gamiton ang rotate(Rotate) function aron mabag-o ang oryentasyon sa bisan unsang anggulo.
'Pangutana:'3.Python Image library
Tubag: Kung naa kay libraries error sa pagdagan sa python example, palihug pagsulay sa pag-instalar sa mga librarya sa PIL pinaagi sa sugo: sudo apt-get install python-imaging
'Pangutana:' 4. Ngano nga ang screen dili magpakita sa husto kung konektado sa usa ka Arduino?
Tubag: Kung mogamit ug Arduino, palihog siguroha nga nasaksak kini sa 5v power supply.
'Pangutana:'5. Ang sayop nga paggamit sa mga kontrol sa Raspberry Pi mahimong hinungdan?
Tubag: Kung normal ang pagdagan sa wiringPi nga rutina, nan ang pagpadagan sa python o BCM2835 mahimong hinungdan nga ang screen mapakyas sa pag-refresh sa normal, tungod kay ang bcm2835 librarya usa ka function sa librarya sa Raspberry Pi cpu chip, ug ang ilawom nga layer mao ang direktang pag-operate sa mga rehistro. , samtang ang ubos nga layer sa wiringPi library ug python gibasa ug gisulat pinaagi sa pagbasa ug pagsulat. Ang himan file sa linux system naglihok sa device, nga mahimong hinungdan sa GPIO port nga abnormal. Ang pagsugod pag-usab sa Raspberry Pi makasulbad niini sa hingpit.
Suporta
Kung kinahanglan nimo ang teknikal nga suporta, palihug adto sa panid ug ablihi ang usa ka tiket.
Mga Dokumento / Mga Kapanguhaan
![]() |
WAVESHARE IL9341 2.4inch LCD TFT Display Module [pdf] Mga instruksiyon IL9341 2.4inch LCD TFT Display Module, IL9341, 2.4inch LCD TFT Display Module, LCD TFT Display Module, TFT Display Module, Display Module, Module |




