1.9 इंच एलसीडी मिनी डिस्प्ले मॉड्यूल

विशेष विवरण:

  • प्रदर्शन का आकार: 1.9 इंच
  • इंटरफ़ेस: GH1.25 8PIN
  • संचार प्रोटोकॉल: एसपीआई
  • इसके साथ संगत: रास्पबेरी पाई

उत्पाद उपयोग निर्देश:

हार्डवेयर कनेक्शन:

कृपया दिए गए का उपयोग करके एलसीडी को अपने रास्पबेरी पाई से कनेक्ट करें
8पिन केबल। नीचे दी गई पिन कॉन्फ़िगरेशन तालिका का अनुसरण करें:

एलसीडी वीसीसी जीएनडी शोर सीएलके
रास्पबेरी पाई BCM2835 3.3 वी जीएनडी मोसी एससीएलके सीई0

SPI इंटरफ़ेस सक्षम करें:

अपने रास्पबेरी पाई पर एसपीआई इंटरफ़ेस सक्षम करने के लिए:

  1. टर्मिनल खोलें और कमांड दर्ज करें: sudo raspi-config
  2. सक्षम करने के लिए इंटरफ़ेसिंग विकल्प -> SPI -> हाँ चुनें
    एसपीआई
  3. कमांड का उपयोग करके अपने रास्पबेरी पाई को रीबूट करें: sudo restart

सी डेमो:

C डेमो चलाने के लिए:

  1. दिए गए आदेशों को चलाकर BCM2835 लाइब्रेरी स्थापित करें
    टर्मिनल
  2. कमांड का उपयोग करके वायरिंगपीआई लाइब्रेरी (वैकल्पिक) स्थापित करें
    प्रदान किया
  3. डेमो डाउनलोड करें files, संकलित करें और दिए गए का उपयोग करके चलाएँ
    निर्देश

पायथन डेमो:

पायथन डेमो चलाने के लिए:

  1. Python2 या Python3 के लिए आवश्यक Python लाइब्रेरी स्थापित करें
    आपकी आवश्यकता के अनुसार
  2. डेमो डाउनलोड करें fileदिए गए का पालन कर रहा है
    निर्देश

अक्सर पूछे जाने वाले प्रश्न (एफएक्यू):

प्रश्न: मैं कैसे जांचूं कि एसपीआई इंटरफ़ेस सक्षम है या नहीं?

उ: आप 'dtparam=spi=on' को सत्यापित करके जांच सकते हैं कि SPI सक्षम है या नहीं
/boot/config.txt में और यह देखने के लिए ls /dev/spi* का उपयोग करें कि SPI है या नहीं
कब्ज़ा होना।

प्रश्न: यदि एसपीआई पर कब्जा हो जाए तो मुझे क्या करना चाहिए?

ए: यदि एसपीआई पर कब्जा है, तो इसे अस्थायी रूप से बंद करने की सिफारिश की जाती है
एसपीआई को मुक्त करने के लिए अन्य ड्राइवर कवरेज। आप इसके लिए ls /dev/spi* का उपयोग कर सकते हैं
कब्जे वाले SPI उदाहरणों की जाँच करें।

प्रश्न: मैं सभी स्क्रीन आकारों के लिए परीक्षण डेमो कैसे चला सकता हूं?

उ: आप संबंधित इनपुट करके परीक्षण डेमो को कॉल कर सकते हैं
टर्मिनल में स्क्रीन का आकार. पूर्व के लिएampले, सूडो ./मेन 1.9 के लिए
1.9 इंच स्क्रीन.

“`

1.9 इंच एलसीडी मॉड्यूल

ऊपरview

1.9 इंच एलसीडी मॉड्यूल

विशेष विवरण

ऑपरेटिंग वॉल्यूमtagई: 3.3 वी / 5 वी (कृपया सुनिश्चित करें कि बिजली आपूर्ति वॉल्यूमtagई तर्क खंड के अनुरूप हैtagई, अन्यथा यह सामान्य रूप से काम नहीं करेगा।) संचार इंटरफ़ेस: एसपीआई डिस्प्ले पैनल: आईपीएस ड्राइवर: एसटी7789वी2 रिज़ॉल्यूशन: 170 (एच) आरजीबी × 320 (वी) डिस्प्ले आयाम: 22.70 × 42.72 मिमी पिक्सेल पिच: 0.1335 × 0.1335 मिमी मॉड्यूल आयाम: 27.3 × 51.2 मिमी

1.9 इंच 170 × 320, एसपीआई

एलसीडी और नियंत्रक
1.9-इंच एलसीडी मॉड्यूल का अंतर्निर्मित ड्राइवर ST7789V2 है, जो 240 x RGB x 320 के साथ एलसीडी नियंत्रक है, और एलसीडी का रिज़ॉल्यूशन 170 (H) RGB × 320 (V) है। इसके अलावा, एलसीडी की आंतरिक रैम का पूरी तरह से उपयोग नहीं किया जाता है क्योंकि इसे पोर्ट्रेट और क्षैतिज स्क्रीन के रूप में आरंभ किया जा सकता है। यह LCD 12 बिट्स, 16 बिट्स और 18 बिट्स के इनपुट RGB फॉर्मेट यानी RGB444, RGB565 और RGB666 को सपोर्ट करता है। यहां उपयोग किया गया डेमो RGB565 है, जो कि RGB प्रारूप है जिसका हम आम तौर पर उपयोग करते हैं। चूंकि एलसीडी 4-वायर एसपीआई को अपनाता है, यह न केवल संचार में तेज है, बल्कि अधिक जीपीआईओ हेडर भी बचाता है।
संचार प्रोटोकॉल

नोट: पारंपरिक एसपीआई प्रोटोकॉल के साथ अंतर यह है कि स्लेव डिवाइस से होस्ट डिवाइस तक डेटा पिन छिपा हुआ है क्योंकि इसे केवल प्रदर्शित करने की आवश्यकता है। कृपया डेटाशीट पृष्ठ 66 देखें। मॉड्यूल चालू होने पर आरईएसएक्स को रीसेट किया जाता है, कम खींचा जाता है, और आमतौर पर 1 पर सेट किया जाता है। सीएसएक्स स्लेव डिवाइस चिप चयन है, कम सक्रिय है। डी/सीएक्स चिप का डेटा/कमांड कंट्रोल पिन है। DC=0 होने पर कमांड लिखें, DC=1 होने पर डेटा लिखें। एसडीए प्रेषित डेटा है, यानी आरजीबी डेटा। एससीएल एसपीआई संचार घड़ी है। एसपीआई संचार के लिए, डेटा अनुक्रम में प्रसारित किया जाता है, यानी सीपीएचए (क्लॉक चरण) और सीपीओएल (क्लॉक पोलारिटी) का संयोजन। सीपीएचए नियंत्रित करता है कि डेटा एससीएलके के पहले या दूसरे किनारे पर एकत्र किया गया है या नहीं। जब CPHA = 1 होता है, तो डेटा SCLK के पहले किनारे पर प्राप्त किया जाता है। सीपीओएल एससीएलके के निष्क्रिय अवस्था स्तर को नियंत्रित करता है। जब CPOL = 2 होता है, तो यह निम्न स्तर पर होता है। उपरोक्त आंकड़े से, आप देख सकते हैं कि यह एससीएलके के पहले किनारे पर डेटा स्थानांतरित करना शुरू कर देता है। 0-बिट डेटा एक घड़ी चक्र में स्थानांतरित किया जाता है, और SPI1 के साथ, डेटा बिट्स में उच्च से निम्न तक प्रसारित होता है।
रास्पबेरी पाई

हार्डवेयर कनेक्शन

कृपया नीचे दी गई तालिका के अनुसार एलसीडी को अपने रास्पबेरी पाई से 8PIN केबल से कनेक्ट करें।

रास्पबेरी पाई से कनेक्ट करें

एलसीडी
वीसीसी जीएनडी दीन सीएलके
सीएस डीएस आरएसटी बीएल

बीसीएम2835 3.3वी जीएनडी मोसी एससीएलके सीई0 25 27 18

रास्पबेरी पाई

बोर्ड 3.3V GND
19 23 24 22 13 12

1.9 इंच एलसीडी GH1.25 8PIN इंटरफ़ेस का उपयोग करता है, जिसे उपरोक्त तालिका के अनुसार रास्पबेरी पाई से जोड़ा जा सकता है: (कृपया पिन परिभाषा तालिका के अनुसार कनेक्ट करें। चित्र में वायरिंग का रंग केवल संदर्भ के लिए है, और वास्तविक रंग प्रबल रहेगा।)

SPI इंटरफ़ेस सक्षम करें
टर्मिनल खोलें, और कॉन्फ़िगरेशन पृष्ठ में प्रवेश करने के लिए निम्नलिखित कमांड का उपयोग करें:
sudo raspi-config SPI इंटरफ़ेस को सक्षम करने के लिए इंटरफ़ेसिंग विकल्प -> SPI -> हाँ चुनें

रास्पबेरी पाई को रीबूट करें
सुडो रीबूट
/boot/config.txt जांचें, और आप देख सकते हैं कि 'dtparam=spi=on' लिखा हुआ है।
यह सुनिश्चित करने के लिए कि SPI पर कब्जा नहीं है, अन्य ड्राइवर कवरेज को अस्थायी रूप से बंद करने की अनुशंसा की जाती है। आप यह जांचने के लिए "ls /dev/spi*" का उपयोग कर सकते हैं कि SPI व्याप्त है या नहीं। यदि टर्मिनल "/dev/spidev0.0″ और " /dev/spidev0.1″ आउटपुट करता है, तो इसका मतलब है कि SPI सामान्य स्थिति में है।
सी डेमो
बीसीएम2835 स्थापित करें
#रास्पबेरी पाई टर्मिनल खोलें और निम्न कमांड चलाएँ wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz tar zxvf bcm2835-1.71.tar.gz cd bcm2835-1.71/ sudo ./ कॉन्फिगर && sudo make && sudo make check && sudo make install # अधिक जानकारी के लिए, कृपया आधिकारिक देखें webसाइट: http://www.a irspayce.com/mikem/bcm2835/
वायरिंगपीआई स्थापित करें (वैकल्पिक)
#रास्पबेरी पाई टर्मिनल खोलें और निम्नलिखित कमांड चलाएँ: sudo apt-get इंस्टाल वायरिंगपीआई #मई 2019 के बाद रास्पबेरी पाई सिस्टम के लिए (पहले वाले सिस्टम को निष्पादित करने की आवश्यकता नहीं है), अपग्रेड की आवश्यकता हो सकती है: wget https://project -downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i वायरिंगpi-latest.deb gpio -v # gpio -v चलाएँ और संस्करण 2.52 दिखाई देगा। यदि यह दिखाई नहीं देता है, तो इसका मतलब है कि इंस्टॉलेशन में कोई त्रुटि है।
#बुल्सआई ब्रांचिंग सिस्टम निम्नलिखित कमांड का उपयोग करता है: git क्लोन https://github.com/WiringPi/WiringPi cd WiringPi ./build gpio -v # gpio -v चलाएँ और संस्करण 2.60 दिखाई देगा। यदि यह दिखाई नहीं देता है, तो इसका मतलब है कि इंस्टॉलेशन में कोई त्रुटि है।
डेमो डाउनलोड
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/
पुनः संकलित करें और इसमें कुछ सेकंड लग सकते हैं।
सीडी सी सुडो मेक क्लीन सुडो मेक -जे 8
सभी स्क्रीन के लिए परीक्षण डेमो को संबंधित आकार इनपुट करके सीधे कॉल किया जा सकता है:
सुडो ./मुख्य 1.9
पायथन डेमो
पुस्तकालय स्थापित करें
#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 -पायथॉन3-पीआईपी इंस्टॉल करें सुडो एपीटी-पाइथॉन3-पीआईएल इंस्टॉल करें सुडो एपीटी-पाइथॉन3-नम्पी इंस्टॉल करें सुडो पिप3 आरपीआई.जीपीआईओ सुडो पिप3 स्पाइदेव इंस्टॉल करें
डेमो डाउनलोड
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/
पायथन डेमो निर्देशिका दर्ज करें और "ls -l" चलाएँ
सीडी पायथन/उदाampलेस एलएस -एल

आप एलसीडी के लिए सभी परीक्षण डेमो देख सकते हैं, और उन्हें आकार के अनुसार वर्गीकृत किया गया है।

0inch96_LCD_test.py 1inch14_LCD_test.py 1inch28_LCD_test.py 1inch3_LCD_test.py 1inch47_LCD_test.py 1inch54_LCD_test.py 1inch8_LCD_test.py 1inch9_LCD_test.py 2inch_LCD_test.py 2inch4_LCD_test.py

0.96 इंच एलसीडी टेस्ट डेमो 1.14 इंच एलसीडी टेस्ट डेमो 1.28 इंच एलसीडी टेस्ट डेमो 1.3 इंच एलसीडी टेस्ट डेमो 1.47 इंच एलसीडी टेस्ट डेमो 1.54 इंच एलसीडी टेस्ट डेमो 1.8 इंच एलसीडी टेस्ट डेमो 1.9 इंच एलसीडी टेस्ट डेमो 2 इंच एलसीडी टेस्ट डेमो 2.4 इंच एलसीडी टेस्ट डेमो

संबंधित डेमो चलाएँ और यह Python2/3 का समर्थन करता है।

# Python2 sudo Python 1इंच9_LCD_test.py # Python3 sudo Python3 1इंच9_LCD_test.py

एफबीसीपी पोर्टिंग
फ़्रेमबफ़र संपूर्ण फ़्रेम डेटा वाले मेमोरी बफ़र से वीडियो डिस्प्ले डिवाइस को चलाने के लिए एक वीडियो आउटपुट डिवाइस का उपयोग करता है। सीधे शब्दों में कहें तो, डिस्प्ले सामग्री को संग्रहीत करने के लिए एक मेमोरी क्षेत्र का उपयोग किया जाता है, और मेमोरी में डेटा को बदलकर डिस्प्ले सामग्री को बदला जा सकता है। जीथब पर एक ओपन सोर्स प्रोजेक्ट है: fbcp-ili9341। अन्य एफबीसीपी परियोजनाओं की तुलना में, यह परियोजना 60fps तक की गति प्राप्त करने के लिए आंशिक रिफ्रेश और डीएमए का उपयोग करती है।
ड्राइवर्स डाउनलोड करें
sudo apt-get install cmake -y cd ~ wget https://www.waveshare.com/w/upload/1/18/Waveshare_fbcp.zip अनज़िप Waveshare_fbcp.zip cd Waveshare_fbcp/ sudo chmod +x ./shell/*
विधि 1: एक स्क्रिप्ट का उपयोग करें (अनुशंसित)
यहां हमने कई स्क्रिप्ट लिखी हैं जो उपयोगकर्ताओं को तुरंत एफबीसीपी का उपयोग करने और अपनी स्क्रीन के अनुसार संबंधित कमांड चलाने की अनुमति देती हैं। यदि आप एक स्क्रिप्ट का उपयोग करते हैं और इसे संशोधित करने की आवश्यकता नहीं है, तो आप नीचे दी गई दूसरी विधि को अनदेखा कर सकते हैं। नोट: स्क्रिप्ट संबंधित /boot/config.txt और /etc/rc.local को प्रतिस्थापित कर देगी और पुनः आरंभ करेगी, यदि उपयोगकर्ता को आवश्यकता हो, तो कृपया प्रासंगिक का बैकअप लें fileअग्रिम में है.
#0.96 इंच एलसीडी मॉड्यूल सुडो ./शेल/वेवशेयर-0इंच96 #1.14इंच एलसीडी मॉड्यूल सुडो ./शेल/वेवशेयर-1इंच14 #1.3इंच एलसीडी मॉड्यूल सुडो ./शेल/वेवशेयर-1इंच3 #1.44इंच एलसीडी मॉड्यूल सुडो ./शेल/वेवशेयर -1इंच44 #1.54इंच एलसीडी मॉड्यूल सुडो ./शेल/वेवशेयर-1इंच54 #1.8इंच एलसीडी मॉड्यूल सुडो ./शेल/वेवशेयर-1इंच8 #2इंच एलसीडी मॉड्यूल सुडो ./शेल/वेवशेयर-2इंच #2.4इंच एलसीडी मॉड्यूल सुडो ./शेल/ वेवशेयर-2इंच4
विधि 2: मैन्युअल कॉन्फ़िगरेशन
पर्यावरण विन्यास
रास्पबेरी पाई का vc4-kms-v3d fbcp को विफल कर देगा, इसलिए हमें fbcp में इंस्टॉल करने से पहले vc4-kms-v3d को बंद करना होगा।
सुडो नैनो /बूट/config.txt
बस नीचे दी गई तस्वीर के अनुरूप कथन को ब्लॉक करें:

रीबूट:
सुडो रीबूट
संकलित करें और चलाएँ
एमकेडीआईआर बिल्ड सीडी बिल्ड सीएमके [विकल्प] .. सुडो मेक -जे सुडो ./एफबीसीपी
आपके द्वारा उपयोग किए जाने वाले एलसीडी मॉड्यूल के अनुसार इसे स्वयं बदलें, ऊपर सेमेक [विकल्प] ..
#0.96 इंच एलसीडी मॉड्यूल सुडो सेमी -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_0INCH96_LCD=ON -DBACKLIG HT_CONTROL=ON -DSTATISTICS=0 .. #1.14 इंच एलसीडी मॉड्यूल sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH14_LCD=ON -DBACKLIG HT_CONTROL=ON -DSTATISTICS=0 .. #1.3 इंच एलसीडी मॉड्यूल sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH3_LCD=ON -DBACKLIGH T_CONTROL=ON -DSTATISTICS=0 .. #1.54इंच LCD मॉड्यूल sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH54_LCD=ON -DBACKLIG HT_CONTROL=ON -DSTATISTICS =0 .. #1.8 इंच एलसीडी मॉड्यूल सुडो सेमी -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH8_LCD=ON -DBACKLIGH T_CONTROL=ON -DSTATISTICS=0 .. #2इंच एलसीडी मॉड्यूल sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_2INCH_LCD=ON -DBAC KLIGHT _नियंत्रण=चालू - DSTATISTICS=0 .. #2.4इंच LCD मॉड्यूल sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_2INCH4_LCD=ON -DBACKLIGH T_CONTROL=ON -DSTATISTICS=0 ..
स्वचालित रूप से प्रारंभ करने के लिए सेट करें
सुडो सीपी ~/वेवशेयर_एफबीसीपी/बिल्ड डी/एफबीसीपी /यूएसआर/लोकल/बिन/एफबीसीपी सुडो नैनो /etc/rc.local
निकास 0 से पहले fbcp& जोड़ें। ध्यान दें कि आपको पृष्ठभूमि में चलने के लिए "&" जोड़ना होगा, अन्यथा सिस्टम प्रारंभ नहीं हो पाएगा।
डिस्प्ले रिज़ॉल्यूशन सेट करें
उपयोगकर्ता इंटरफ़ेस डिस्प्ले आकार को /boot/config.txt में सेट करें file.
सुडो नैनो /बूट/config.txt
फिर config.txt के अंत में निम्नलिखित पंक्तियाँ जोड़ें।
hdmi_force_hotplug=1 hdmi_cvt=[विकल्प] hdmi_group=2 hdmi_mode=1 hdmi_mode=87 डिस्प्ले_रोटेट=0
आपके द्वारा उपयोग किए जा रहे एलसीडी मॉड्यूल के अनुसार उपरोक्त hdmi_cvt=[विकल्प] को बदलें।
#2.4इंच एलसीडी मॉड्यूल और 2इंच एलसीडी मॉड्यूल hdmi_cvt=640 480 60 1 0 0 0
#1.8 इंच एलसीडी मॉड्यूल hdmi_cvt=400 300 60 1 0 0 0
#1.3 इंच एलसीडी मॉड्यूल और 1.54 इंच एलसीडी मॉड्यूल hdmi_cvt=300 300 60 1 0 0 0
#1.14 इंच एलसीडी मॉड्यूल hdmi_cvt=300 170 60 1 0 0 0
#0.96 इंच एलसीडी मॉड्यूल hdmi_cvt=300 150 60 1 0 0 0
और फिर सिस्टम को रिबूट करें:
सुडो रीबूट
सिस्टम को रिबूट करने के बाद, रास्पबेरी पाई ओएस यूजर इंटरफेस प्रदर्शित किया जाएगा।

एसटीएम०१६

हार्डवेयर कनेक्शन

हमारे द्वारा प्रदान किया गया डेमो STM32F103RBT6 पर आधारित है, और यह STM32F103RBT6 पिन के अनुरूप जुड़ा हुआ है। यदि आपको प्रोग्राम को पोर्ट करने की आवश्यकता है, तो आप इसे वास्तविक पिन के अनुसार कनेक्ट कर सकते हैं।

STM32F103ZET पिन कनेक्शन पत्राचार
एलसीडी वीसीसी जीएनडी दीन सीएलके
सीएस डीसी आरएसटी बीएल

STM32 3.3V GND PA7 PA5 PB6 PA8 PA9 PC7

हमारी कंपनी द्वारा विकसित XNUCLEO-F103RB को उदाहरण के तौर पर लेंampले, कनेक्शन इस प्रकार है:

डेमो चलाएँ
डेमो डाउनलोड करें और STM32 ढूंढें file निर्देशिका, STM32STM32F103RBT6MDK-ARM की निर्देशिका में LCD_demo.uvprojx खोलें, फिर आप डेमो देख सकते हैं।
Main.c खोलें और आप सभी परीक्षण डेमो देख सकते हैं। जैसा कि हम 1.9-इंच एलसीडी मॉड्यूल का उपयोग करते हैं, हमें "LCD_1in9_test();" के सामने टिप्पणी को हटाने की आवश्यकता है। और पुनः संकलित करें और डाउनलोड करें।

डेमो विवरण

अंतर्निहित हार्डवेयर इंटरफ़ेस

डेटा प्रकार

#UBYTE को परिभाषित करें #UWORD को परिभाषित करें #UDOUBLE को परिभाषित करें

uint8_t uint16_t uint32_t

मॉड्यूल आरंभीकरण और निकास प्रसंस्करण
शून्य DEV_मॉड्यूल_इनिट(शून्य); शून्य DEV_Module_Exit(शून्य); नोट: 1. यहां एलसीडी स्क्रीन का उपयोग करने से पहले और बाद में कुछ जीपीआईओ की प्रोसेसिंग दी गई है; 2. DEV_Module_Exit फ़ंक्शन का उपयोग करने के बाद, एलसीडी डिस्प्ले बंद कर दिया जाएगा;

GPIO लिखें और पढ़ें
शून्य DEV_Digital_Write(UWORD पिन, UBYTE मान); UBYTE DEV_Digital_Read(UWORD पिन);
एसपीआई डेटा लिखता है
शून्य DEV_SPI_WRITE(UBYTE _dat);

ऊपरी आवेदन
एलसीडी के लिए, यह ऊपरी एप्लिकेशन है जो चित्र खींचता है, चीनी/अंग्रेजी अक्षर प्रदर्शित करता है, चित्र प्रदर्शित करता है, आदि। कई दोस्तों ने कुछ ग्राफिक्स प्रोसेसिंग के बारे में पूछा है। हम यहां कुछ बुनियादी कार्य प्रदान करते हैं। आप GUI को निम्नलिखित निर्देशिका में पा सकते हैं: STM32STM32F103RBUserGUI_DEVGUI_Paint.c(.h) नोट: STM32 और Arduino की RAM सीमाओं के कारण GUI सीधे LCD RAM में लिखा जाता है।

निम्नलिखित निर्देशिका GUI निर्भरता के लिए फ़ॉन्ट है: STM32STM32F103RBUserFonts

नई छवि गुण: छवि गुणों में शामिल हैं: छवि कैश का नाम, चौड़ाई, ऊंचाई, घूर्णन कोण और रंग।
शून्य पेंट_न्यूइमेज(यूवर्ड चौड़ाई, यूवर्ड ऊंचाई, यूवर्ड रोटेट, यूवर्ड रंग); पैरामीटर:
चौड़ाई: छवि कैश की चौड़ाई ऊंचाई: छवि कैश की ऊंचाई घुमाएँ: छवि कैश का घूर्णन कोण रंग: छवि कैश का रंग
स्क्रीन क्लियरिंग फ़ंक्शन सेट करें, आमतौर पर एलसीडी के क्लियर फ़ंक्शन को कॉल करें;
शून्य पेंट_सेटक्लियरफ़ंक्शन(शून्य (*साफ़)(UWORD)); पैरामीटर:
साफ़ करें: स्क्रीन साफ़ करने के फ़ंक्शन के लिए एक सूचक, जिसका उपयोग स्क्रीन को एक निश्चित रंग में तुरंत साफ़ करने के लिए किया जाता है;
ड्राइंग पिक्सल का फ़ंक्शन सेट करें, आमतौर पर एलसीडी के ड्रॉपेंट फ़ंक्शन को कॉल करें;
शून्य पेंट_सेटडिस्प्लेफ़ंक्शन(शून्य (*प्रदर्शन)(UWORD,UWORD,UWORD)); पैरामीटर:
डिस्प्ले: ड्राइंग पिक्सल के कार्य के लिए सूचक, जिसका उपयोग एलसीडी आंतरिक रैम के निर्दिष्ट स्थान पर डेटा लिखने के लिए किया जाता है;
छवि कैश का चयन करें: छवि कैश का चयन करें, चयन का उद्देश्य यह है कि आप एकाधिक छवि गुण बना सकते हैं, छवि कैश एकाधिक मौजूद हो सकते हैं, और आप अपने द्वारा बनाई गई प्रत्येक छवि का चयन कर सकते हैं।
शून्य पेंट_SelectImage(UBYTE *image) पैरामीटर्स:
छवि: छवि कैश का नाम, जो वास्तव में छवि कैश के पहले पते का सूचक है;
छवि रोटेशन: चुनी गई छवि के घूर्णन कोण को सेट करें, और इसे "Paint_SelectImage()" के बाद उपयोग करने की अनुशंसा की जाती है, और आप 0, 90, 180, 270 को घुमाने का विकल्प चुन सकते हैं।
शून्य पेंट_सेटरोटेट(यूवर्ड रोटेट) पैरामीटर्स:
घुमाएँ: छवि चयन कोण, आप क्रमशः 0, 90, 180 और 270 डिग्री के अनुरूप ROTATE_0, ROTATE_90, ROTAT E_180 और ROTATE_270 चुन सकते हैं
नोट: विभिन्न चयन कोणों के तहत, निर्देशांक अलग-अलग शुरुआती पिक्सेल के अनुरूप होते हैं। यहां हम 1.14 को पूर्व के रूप में लेते हैंampले, और चार चित्र क्रम में 0°, 90°, 180° और 270° हैं। केवल संदर्भ के लिए:

छवि दर्पण फ्लिप: चयनित छवि का दर्पण फ्लिप सेट करें, आप कोई भी दर्पण, क्षैतिज दर्पण, ऊर्ध्वाधर दर्पण, या छवि केंद्र दर्पण नहीं चुन सकते हैं।
शून्य पेंट_सेटमिररिंग (यूबीटीई मिरर) पैरामीटर्स:
दर्पण: MIRROR_NONEMIRROR_HORIZONTALMIRROR_VERTICALMIRROR_ORI GIN क्रमशः कोई भी मिररिंग, क्षैतिज मिररिंग, वेव वर्टिकल मिररिंग, छवि केंद्र मिररिंग के अनुरूप नहीं है

कैश में बिंदु की प्रदर्शन स्थिति और रंग सेट करें: यहां कैश में बिंदुओं की स्थिति और रंग को संसाधित करने के लिए जीयूआई का मुख्य कार्य है।
शून्य पेंट_सेटपिक्सेल (यूवर्ड एक्सपॉइंट, यूवर्ड वाईपॉइंट, यूवर्ड कलर) पैरामीटर्स:
एक्सपॉइंट: छवि कैश में बिंदु की एक्स स्थिति वाईपॉइंट: छवि कैश में बिंदु की वाई स्थिति रंग: बिंदु प्रदर्शन का रंग

छवि कैश रंग भरता है: छवि कैश को एक निश्चित रंग से भरें, आम तौर पर स्क्रीन को रिक्त स्थान पर फ्लैश करने के लिए।
शून्य पेंट_क्लियर (UWORD रंग) पैरामीटर्स:
रंग: रंग भरें

छवि कैश विंडो के हिस्से का रंग भरना: छवि कैश की विंडो के एक निश्चित हिस्से को एक निश्चित रंग से भरें, आमतौर पर विंडो व्हाइटनिंग फ़ंक्शन के रूप में उपयोग किया जाता है, अक्सर समय प्रदर्शन के लिए उपयोग किया जाता है, एक सेकंड के लिए व्हाइटनिंग।
शून्य पेंट_क्लियरविंडोज़ (यूवर्ड एक्सस्टार्ट, यूवर्ड वाईस्टार्ट, यूवर्ड एक्सएंड, यूवर्ड येन डी, यूवर्ड कलर) पैरामीटर:
Xstart: X विंडो के प्रारंभ निर्देशांक Ystart: Y विंडो के प्रारंभ निर्देशांक Xend: X विंडो के अंत निर्देशांक Yend: Y विंडो के अंत निर्देशांक रंग: रंग भरें

बिंदु बनाएं: छवि कैश में, (Xpoint, Ypoint) पर बिंदु बनाएं, आप रंग, बिंदु आकार और बिंदु शैली चुन सकते हैं।

शून्य पेंट_ड्रॉपॉइंट(UWORD Xpoint, UWORD Ypoint, UWORD Color, DOT_PIXEL Do

t_पिक्सेल, DOT_STYLE Dot_Style)

पैरामीटर:

Xबिंदु: बिंदु का X निर्देशांक

Yबिंदु: बिंदु का Y निर्देशांक

रंग: रंग भरें

Dot_Pixel: बिंदु आकार, डिफ़ॉल्ट 8 आकार बिंदु प्रदान करता है

टाइपडिफ एनम {

DOT_PIXEL_1X1 = 1, // 1 x 1

DOT_PIXEL_2X2,

// 2 एक्स 2

DOT_PIXEL_3X3,

// 3 एक्स 3

DOT_PIXEL_4X4,

// 4 एक्स 4

DOT_PIXEL_5X5,

// 5 एक्स 5

DOT_PIXEL_6X6,

// 6 एक्स 6

DOT_PIXEL_7X7,

// 7 एक्स 7

DOT_PIXEL_8X8,

// 8 एक्स 8

} DOT_PIXEL;

Dot_Style: बिंदु की शैली, आकार विस्तार का तरीका है

बिंदु को केंद्र मानकर विस्तार करें या बिंदु को निचला मानकर विस्तार करें

ऊपरी दाएं कोने पर बायां कोना।

टाइपडिफ एनम {

DOT_FILL_AROUND = 1,

DOT_FILL_RIGHTUP,

} DOT_STYLE;

एक रेखा खींचें: छवि कैश में (Xstart, Ystart) से (Xend, Yend) तक एक रेखा खींचें, आप रंग, रेखा की चौड़ाई और रेखा शैली चुन सकते हैं।

शून्य पेंट_ड्रालाइन(यूवर्ड एक्सस्टार्ट, यूवर्ड वाईस्टार्ट, यूवर्ड एक्सएंड, यूवर्ड येंड, यूडब्ल्यू

ORD रंग, LINE_STYLE लाइन_शैली , LINE_STYLE लाइन_शैली)

पैरामीटर:

Xstart: रेखा के प्रारंभिक बिंदु का X निर्देशांक

Ystart: रेखा के प्रारंभिक बिंदु का Y निर्देशांक

Xend: रेखा का X समापन बिंदु निर्देशांक

येंड: रेखा का Y अंत बिंदु निर्देशांक

रंग: रंग भरें

लाइन_विड्थ: लाइन की चौड़ाई, 8 डिफ़ॉल्ट चौड़ाई प्रदान करती है

टाइपडिफ एनम {

DOT_PIXEL_1X1 = 1, // 1 x 1

DOT_PIXEL_2X2,

// 2 एक्स 2

DOT_PIXEL_3X3,

// 3 एक्स 3

DOT_PIXEL_4X4,

// 4 एक्स 4

DOT_PIXEL_5X5,

// 5 एक्स 5

DOT_PIXEL_6X6,

// 6 एक्स 6

DOT_PIXEL_7X7,

// 7 एक्स 7

DOT_PIXEL_8X8,

// 8 एक्स 8

} DOT_PIXEL;

लाइन_स्टाइल: लाइन शैली, चुनें कि क्या लाइनें जुड़ी हुई हैं

एक सीधी रेखा या बिंदीदार रेखा।

टाइपडिफ एनम {

LINE_STYLE_SOLID = 0,

LINE_STYLE_DOTTED,

} लाइन_स्टाइल;

एक आयत बनाएं: छवि कैश में, (Xstart, Ystart) से (Xend, Yend) तक एक आयत बनाएं, आप रंग, रेखा की चौड़ाई और आयत के अंदर भरना है या नहीं चुन सकते हैं।

void पेंट_ड्रारेक्टेंगल(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD येन

d, UWORD रंग, DOT_PIXEL रेखा_चौड़ाई, DRAW_FILL ड्रा_भरें)

पैरामीटर:

Xstart: आयत के प्रारंभिक बिंदु का X निर्देशांक

Ystart: आयत के प्रारंभिक बिंदु का Y निर्देशांक

Xend: आयत के समापन बिंदु का X निर्देशांक

येंड: आयत के समापन बिंदु का Y निर्देशांक

रंग: रंग भरा हुआ

रेखा_चौड़ाई: आयत की चारों भुजाओं की चौड़ाई, बशर्ते

जी 8 डिफ़ॉल्ट चौड़ाई

टाइपडिफ एनम {

DOT_PIXEL_1X1 = 1, // 1 x 1

DOT_PIXEL_2X2,

// 2 एक्स 2

DOT_PIXEL_3X3,

// 3 एक्स 3

DOT_PIXEL_4X4,

// 4 एक्स 4

DOT_PIXEL_5X5,

// 5 एक्स 5

DOT_PIXEL_6X6,

// 6 एक्स 6

DOT_PIXEL_7X7,

// 7 एक्स 7

DOT_PIXEL_8X8,

// 8 एक्स 8

} DOT_PIXEL;

ड्रा_फ़िल: भरें, चाहे आयत के अंदर भरना हो

टाइपडिफ एनम {

DRAW_FILL_EMPTY = 0,

ड्रा_भरें_पूरा,

}DRAW_FILL;

एक वृत्त बनाएं: छवि कैश में, (X_Center Y_Center) को केंद्र में रखते हुए, त्रिज्या के साथ एक वृत्त बनाएं, आप रंग, रेखा की चौड़ाई और वृत्त के अंदर भरना है या नहीं, चुन सकते हैं।

शून्य पेंट_ड्रॉ सर्कल(यूवर्ड एक्स_सेंटर, यूवर्ड वाई_सेंटर, यूवर्ड रेडियस, यूवर्ड

रंग, DOT_PIXEL रेखा_चौड़ाई, DRAW_FILL ड्रा_भरें)

पैरामीटर:

X_Center: वृत्त के केंद्र का X निर्देशांक

Y_केंद्र: Y वृत्त के केंद्र का निर्देशांक त्रिज्या वृत्त की त्रिज्या

रंग: रंग भरें

लाइन_विड्थ: चाप की चौड़ाई, 8 डिफ़ॉल्ट चौड़ाई प्रदान करती है

टाइपडिफ एनम {

DOT_PIXEL_1X1 = 1, // 1 x 1

DOT_PIXEL_2X2,

// 2 एक्स 2

DOT_PIXEL_3X3,

// 3 एक्स 3

DOT_PIXEL_4X4,

// 4 एक्स 4

DOT_PIXEL_5X5,

// 5 एक्स 5

DOT_PIXEL_6X6,

// 6 एक्स 6

DOT_PIXEL_7X7,

// 7 एक्स 7

DOT_PIXEL_8X8,

// 8 एक्स 8

} DOT_PIXEL;

ड्रा_फ़िल: भरें, चाहे सर्कल के अंदर भरना हो

टाइपडिफ एनम {

DRAW_FILL_EMPTY = 0,

ड्रा_भरें_पूरा,

}DRAW_FILL;

Ascii वर्ण लिखें: छवि बफ़र में, बाएं शीर्ष के रूप में (Xstart Ystart) पर एक Ascii वर्ण लिखें, आप Ascii कोड दृश्य वर्ण फ़ॉन्ट लाइब्रेरी, फ़ॉन्ट अग्रभूमि रंग और फ़ॉन्ट पृष्ठभूमि रंग चुन सकते हैं।
void पेंट_ड्राचार(UWORD Xstart, UWORD Ystart, const char Ascii_Char, sFO NT* फ़ॉन्ट, UWORD Color_Foreground, UWORD Color_Background) पैरामीटर्स:
Xstart: वर्ण के बाएँ शीर्ष का
फ़ॉन्ट85*8 फ़ॉन्ट फ़ॉन्ट127*12 फ़ॉन्ट फ़ॉन्ट1611*16 फ़ॉन्ट फ़ॉन्ट2014*20 फ़ॉन्ट फ़ॉन्ट2417*24 फ़ॉन्ट रंग_फोरग्राउंड: फ़ॉन्ट रंग रंग_पृष्ठभूमि: पृष्ठभूमि रंग
अंग्रेजी वर्ण स्ट्रिंग लिखें: छवि कैश में, (Xstart Ystart) पर बाएं शीर्ष के रूप में, अंग्रेजी वर्णों की एक स्ट्रिंग लिखें, आप Ascii कोड विज़ुअल कैरेक्टर फ़ॉन्ट लाइब्रेरी, फ़ॉन्ट अग्रभूमि रंग, फ़ॉन्ट पृष्ठभूमि रंग चुन सकते हैं;
शून्य पेंट_ड्रॉस्ट्रिंग_EN(UWORD Xstart, UWORD Ystart, const char * pString, sFONT* फ़ॉन्ट, UWORD Color_Foreground, UWORD Color_Background) पैरामीटर्स:
Xstart: वर्ण के बाएँ शीर्ष का :
फ़ॉन्ट85*8 फ़ॉन्ट फ़ॉन्ट127*12 फ़ॉन्ट फ़ॉन्ट1611*16 फ़ॉन्ट फ़ॉन्ट2014*20 फ़ॉन्ट फ़ॉन्ट2417*24 फ़ॉन्ट रंग_फोरग्राउंड: फ़ॉन्ट रंग रंग_पृष्ठभूमि: पृष्ठभूमि रंग
चीनी वर्ण स्ट्रिंग लिखें: छवि कैश में, (Xstart Ystart) पर बाएं शीर्ष के रूप में, चीनी वर्णों की एक स्ट्रिंग लिखें, आप GB2312 कोडित वर्ण फ़ॉन्ट, फ़ॉन्ट अग्रभूमि रंग, फ़ॉन्ट पृष्ठभूमि रंग चुन सकते हैं;
शून्य पेंट_ड्रॉस्ट्रिंग_CN(UWORD Xstart, UWORD Ystart, const char * pString, cFONT* फ़ॉन्ट, UWORD Color_Foreground, UWORD Color_Background) पैरामीटर्स:
Xstart: वर्ण के बाएँ शीर्ष का
फ़ॉन्ट12CNascii वर्ण फ़ॉन्ट 11*21, चीनी फ़ॉन्ट 16*21 फ़ॉन्ट24CNascii वर्ण फ़ॉन्ट 24*41, चीनी फ़ॉन्ट 32*41 रंग_फोरग्राउंड: फ़ॉन्ट रंग रंग_पृष्ठभूमि: पृष्ठभूमि रंग
संख्याएँ लिखें: छवि कैश में, बाएँ शीर्ष के रूप में (Xstart Ystart) पर संख्याओं की एक स्ट्रिंग लिखें, आप Ascii कोड विज़ुअल कैरेक्टर फ़ॉन्ट लाइब्रेरी, फ़ॉन्ट अग्रभूमि रंग, फ़ॉन्ट पृष्ठभूमि रंग चुन सकते हैं।
शून्य पेंट_ड्रॉनम(यूवर्ड एक्सपॉइंट, यूवर्ड वाईपॉइंट, int32_t नंबर, एसएफओएनटी* फॉन टी, यूवर्ड कलर_फोरग्राउंड, यूवर्ड कलर_बैकग्राउंड) पैरामीटर:
Xstart: वर्ण के बाएँ शीर्ष का Ascii कोड विज़ुअल कैरेक्टर फ़ॉन्ट लाइब्रेरी फ़ॉन्ट फ़ोल्डर में निम्नलिखित फ़ॉन्ट प्रदान करती है:
फ़ॉन्ट85*8 फ़ॉन्ट फ़ॉन्ट127*12 फ़ॉन्ट फ़ॉन्ट1611*16 फ़ॉन्ट फ़ॉन्ट2014*20 फ़ॉन्ट फ़ॉन्ट2417*24 फ़ॉन्ट रंग_फोरग्राउंड: फ़ॉन्ट रंग रंग_पृष्ठभूमि: पृष्ठभूमि रंग
दशमलव के साथ संख्याएँ लिखें: छवि कैश में, (Xstart Ystart) बायाँ शीर्ष है, संख्याओं की एक स्ट्रिंग लिखें जिसमें दशमलव संख्याएँ हो सकती हैं, आप Ascii कोड विज़ुअल कैरेक्टर फ़ॉन्ट लाइब्रेरी, फ़ॉन्ट अग्रभूमि रंग, फ़ॉन्ट पृष्ठभूमि रंग चुन सकते हैं।
शून्य पेंट_ड्राफ़्लोटनम(यूवर्ड पैरामीटर:
Xstart: वर्ण के बाएँ शीर्ष का X निर्देशांक Ystart: वर्ण के बाएँ शीर्ष का Y निर्देशांक संख्या: यहाँ प्रदर्शित संख्या दोहरे प्रकार में सहेजी गई है, जो सामान्य आवश्यकताओं के लिए पर्याप्त है। दशमलव बिंदु t फ़ॉन्ट: Ascii कोड विज़ुअल कैरेक्टर फ़ॉन्ट लाइब्रेरी फ़ॉन्ट फ़ोल्डर में निम्न फ़ॉन्ट प्रदान करता है:
फ़ॉन्ट85*8 फ़ॉन्ट फ़ॉन्ट127*12 फ़ॉन्ट फ़ॉन्ट1611*16 फ़ॉन्ट फ़ॉन्ट2014*20 फ़ॉन्ट फ़ॉन्ट2417*24 फ़ॉन्ट रंग_फोरग्राउंड: फ़ॉन्ट रंग रंग_पृष्ठभूमि: पृष्ठभूमि रंग
प्रदर्शन समय: छवि कैश में, (Xstart Ystart) बायां शीर्ष है, और इसे कुछ समय के लिए प्रदर्शित किया जाएगा, और आप Ascii कोड विज़ुअल कैरेक्टर फ़ॉन्ट लाइब्रेरी, फ़ॉन्ट अग्रभूमि रंग और फ़ॉन्ट पृष्ठभूमि रंग चुन सकते हैं;
शून्य पेंट_ड्राटाइम(UWORD Xstart, UWORD Ystart, PAINT_TIME *pTime, sFONT* फ़ॉन्ट, UWORD Color_Background, UWORD Color_Foreground) पैरामीटर्स:
Xstart: वर्ण के बाएँ शीर्ष का मापदंडों के लिए; फ़ॉन्ट: एएससीआई कोड विज़ुअल कैरेक्टर फ़ॉन्ट लाइब्रेरी फ़ॉन्ट फ़ोल्डर में निम्नलिखित फ़ॉन्ट प्रदान करती है:
फ़ॉन्ट85*8 फ़ॉन्ट फ़ॉन्ट127*12 फ़ॉन्ट फ़ॉन्ट1611*16 फ़ॉन्ट फ़ॉन्ट2014*20 फ़ॉन्ट फ़ॉन्ट2417*24 फ़ॉन्ट रंग_फोरग्राउंड: फ़ॉन्ट रंग रंग_पृष्ठभूमि: पृष्ठभूमि रंग

आर्डुइनो

नोट: सभी डेमो का परीक्षण Arduino uno में किया गया है। यदि आपको अन्य प्रकार के Arduino की आवश्यकता है, तो आपको यह निर्धारित करना होगा कि कनेक्शन पिन सही हैं या नहीं।

आईडीई स्थापना
Arduino IDE स्थापना चरण

हार्डवेयर कनेक्शन
Arduino UNO पिन कनेक्शन पत्राचार
एलसीडी वीसीसी जीएनडी दीन सीएलके
सीएस डीसी आरएसटी बीएल
कनेक्शन आरेख इस प्रकार है (बड़ा करने के लिए क्लिक करें):

यूएनओ 5वी
जीएनडी डी11 डी13 डी10 डी7 डी8 डी9

डेमो चलाएँ
डेमो डाउनलोड करें और इसे अनज़िप करें। Arduino डेमो ~/Arduino/… में है। चूँकि हम 1.9 इंच एलसीडी मॉड्यूल का उपयोग करते हैं, हमें LCD_1 इंच9 खोलने की आवश्यकता है file फ़ोल्डर खोलें और LCD_1इंच9.ino चलाएँ file फ़ोल्डर.
डेमो खोलें और Arduino UNO के रूप में विकास बोर्ड मॉडल चुनें।

संबंधित COM पोर्ट चुनें.

और फिर संकलित करें और डाउनलोड करें पर क्लिक करें।

डेमो विवरण File परिचय
पूर्व के रूप में 1.54 इंच एलसीडी को नियंत्रित करने वाले Arduino UNO को लेंampले, ArduinoLCD_1इंच54 निर्देशिका खोलें।
LCD_1इंच54.ino: इसे Arduino IDE से खोलें। LCD_Driver.cpp(.h): यह LCD स्क्रीन का ड्राइवर है। DEV_Config.cpp(.h): यह हार्डवेयर इंटरफ़ेस परिभाषा है, जो पढ़ने और लिखने के पिन स्तर, एसपीआई ट्रांसमिशन डेटा और पिन आरंभीकरण को समाहित करता है। फ़ॉन्ट8.सीपीपी, फ़ॉन्ट12.सीपीपी, फ़ॉन्ट16.सीपीपी, फ़ॉन्ट20.सीपीपी, फ़ॉन्ट24.सीपीपी, फ़ॉन्ट24सीएन.सीपीपी, फ़ॉन्ट.एच: विभिन्न आकारों के पात्रों के लिए फ़ॉन्ट। image.cpp(.h): यह छवि डेटा है, जो Img16Lcd के माध्यम से किसी भी BMP छवि को 2-बिट ट्रू-कलर छवि सरणी में परिवर्तित कर सकता है (#Resource में डाउनलोड किया जा सकता है)। डेमो को अंतर्निहित हार्डवेयर इंटरफ़ेस, मध्य-परत एलसीडी ड्राइवर और ऊपरी-परत एप्लिकेशन में विभाजित किया गया है।
अंतर्निहित हार्डवेयर इंटरफ़ेस
हार्डवेयर इंटरफ़ेस को दो में परिभाषित किया गया है files DEV_Config.cpp (.h), और पिन स्तर, देरी और एसपीआई ट्रांसमिशन को पढ़ने और लिखने जैसे कार्य इनकैप्सुलेटेड हैं।
पिन लेवल लिखें
शून्य DEV_Digital_Write(int पिन, int मान)
पहला पैरामीटर पिन है, और दूसरा उच्च और निम्न स्तर है। पिन लेवल लिखें
int DEV_Digital_Read(int पिन)
पैरामीटर पिन है, और रिटर्न मान रीड पिन का स्तर है। देरी
DEV_Delay_ms(अहस्ताक्षरित पूर्णांक विलंब समय)
मिलीसेकंड स्तर की देरी. एसपीआई आउटपुट डेटा
DEV_SPI_WRITE(अहस्ताक्षरित चार डेटा)
पैरामीटर चार प्रकार का है, जो 8 बिट्स पर कब्जा करता है।
ऊपरी आवेदन
एलसीडी के लिए, यह ऊपरी एप्लिकेशन है जो चित्र खींचता है, चीनी/अंग्रेजी अक्षर प्रदर्शित करता है, चित्र प्रदर्शित करता है, आदि। कई दोस्तों ने कुछ ग्राफिक्स प्रोसेसिंग के बारे में पूछा है। हम यहां कुछ बुनियादी फ़ंक्शन GUI_Paint.c(.h) प्रदान करते हैं। नोट: STM32 और Arduino की रैम सीमा के कारण GUI सीधे LCD RAM में लिखा जाता है।
GUI द्वारा उपयोग किए जाने वाले सभी फ़ॉन्ट फ़ॉन्ट*.cpp(h) पर निर्भर करते हैं file उसी के तहत file.

नई छवि गुण: छवि गुणों में शामिल हैं: छवि कैश का नाम, चौड़ाई, ऊंचाई, घूर्णन कोण और रंग।
शून्य पेंट_न्यूइमेज(यूवर्ड चौड़ाई, यूवर्ड ऊंचाई, यूवर्ड रोटेट, यूवर्ड रंग); पैरामीटर:
चौड़ाई: छवि कैश की चौड़ाई ऊंचाई: छवि कैश की ऊंचाई घुमाएँ: छवि कैश का घूर्णन कोण रंग: छवि कैश का रंग
स्क्रीन क्लियरिंग फ़ंक्शन सेट करें, आमतौर पर एलसीडी के क्लियर फ़ंक्शन को कॉल करें;
शून्य पेंट_सेटक्लियरफ़ंक्शन(शून्य (*साफ़)(UWORD)); पैरामीटर:
साफ़ करें: स्क्रीन साफ़ करने के फ़ंक्शन के लिए एक सूचक, जिसका उपयोग स्क्रीन को एक निश्चित रंग में तुरंत साफ़ करने के लिए किया जाता है;
ड्राइंग पिक्सल का फ़ंक्शन सेट करें, आमतौर पर एलसीडी के ड्रॉपेंट फ़ंक्शन को कॉल करें;
शून्य पेंट_सेटडिस्प्लेफ़ंक्शन(शून्य (*प्रदर्शन)(UWORD,UWORD,UWORD)); पैरामीटर:
डिस्प्ले: ड्राइंग पिक्सल के कार्य के लिए सूचक, जिसका उपयोग एलसीडी आंतरिक रैम के निर्दिष्ट स्थान पर डेटा लिखने के लिए किया जाता है;
छवि कैश का चयन करें: छवि कैश का चयन करें, चयन का उद्देश्य यह है कि आप एकाधिक छवि गुण बना सकते हैं, छवि कैश एकाधिक मौजूद हो सकते हैं, और आप अपने द्वारा बनाई गई प्रत्येक छवि का चयन कर सकते हैं।
शून्य पेंट_SelectImage(UBYTE *image) पैरामीटर्स:
छवि: छवि कैश का नाम, जो वास्तव में छवि कैश के पहले पते का सूचक है;
छवि रोटेशन: चुनी गई छवि के घूर्णन कोण को सेट करें, और इसे "Paint_SelectImage()" के बाद उपयोग करने की अनुशंसा की जाती है, और आप 0, 90, 180, 270 को घुमाने का विकल्प चुन सकते हैं।
शून्य पेंट_सेटरोटेट(यूवर्ड रोटेट) पैरामीटर्स:
घुमाएँ: छवि चयन कोण, आप क्रमशः 0, 90, 180 और 270 डिग्री के अनुरूप ROTATE_0, ROTATE_90, ROTAT E_180 और ROTATE_270 चुन सकते हैं
नोट: विभिन्न चयन कोणों के तहत, निर्देशांक अलग-अलग शुरुआती पिक्सेल के अनुरूप होते हैं। यहां हम 1.14 को पूर्व के रूप में लेते हैंampले, और चार चित्र क्रम में 0°, 90°, 180° और 270° हैं। केवल संदर्भ के लिए:

छवि दर्पण फ्लिप: चयनित छवि का दर्पण फ्लिप सेट करें, आप कोई भी दर्पण, क्षैतिज दर्पण, ऊर्ध्वाधर दर्पण, या छवि केंद्र दर्पण नहीं चुन सकते हैं।
शून्य पेंट_सेटमिररिंग (यूबीटीई मिरर) पैरामीटर्स:
दर्पण: MIRROR_NONEMIRROR_HORIZONTALMIRROR_VERTICALMIRROR_ORI GIN क्रमशः कोई भी मिररिंग, क्षैतिज मिररिंग, वेव वर्टिकल मिररिंग, छवि केंद्र मिररिंग के अनुरूप नहीं है

कैश में बिंदु की प्रदर्शन स्थिति और रंग सेट करें: यहां कैश में बिंदु स्थिति और रंग को संसाधित करने के लिए जीयूआई का मुख्य कार्य है।
शून्य पेंट_सेटपिक्सेल (यूवर्ड एक्सपॉइंट, यूवर्ड वाईपॉइंट, यूवर्ड कलर) पैरामीटर्स:
एक्सपॉइंट: छवि कैश में बिंदु की एक्स स्थिति वाईपॉइंट: छवि कैश में बिंदु की वाई स्थिति रंग: बिंदु प्रदर्शन का रंग

छवि कैश रंग भरता है: छवि कैश को एक निश्चित रंग से भरें, आम तौर पर स्क्रीन को रिक्त स्थान पर फ्लैश करने के लिए।
शून्य पेंट_क्लियर (UWORD रंग) पैरामीटर्स:
रंग: रंग भरें

छवि कैश विंडो के हिस्से का रंग भरना: छवि कैश की विंडो के एक निश्चित हिस्से को एक निश्चित रंग से भरें, आमतौर पर विंडो व्हाइटनिंग फ़ंक्शन के रूप में उपयोग किया जाता है, अक्सर समय प्रदर्शन के लिए उपयोग किया जाता है, एक सेकंड के लिए व्हाइटनिंग।
शून्य पेंट_क्लियरविंडोज़ (यूवर्ड एक्सस्टार्ट, यूवर्ड वाईस्टार्ट, यूवर्ड एक्सएंड, यूवर्ड येन डी, यूवर्ड कलर) पैरामीटर्स:
Xstart: X विंडो के प्रारंभ निर्देशांक Ystart: Y विंडो के प्रारंभ निर्देशांक Xend: X विंडो के अंत निर्देशांक Yend: Y विंडो के अंत निर्देशांक रंग: रंग भरें

बिंदु बनाएं: छवि कैश में, (Xpoint, Ypoint) पर बिंदु बनाएं, आप रंग, बिंदु आकार और बिंदु शैली चुन सकते हैं।

शून्य पेंट_ड्रॉपॉइंट(UWORD Xpoint, UWORD Ypoint, UWORD Color, DOT_PIXEL Do

t_पिक्सेल, DOT_STYLE Dot_Style)

पैरामीटर:

Xबिंदु: बिंदु का X निर्देशांक

Yबिंदु: बिंदु का Y निर्देशांक

रंग: रंग भरें

Dot_Pixel: बिंदु आकार, डिफ़ॉल्ट 8 आकार बिंदु प्रदान करता है

टाइपडिफ एनम {

DOT_PIXEL_1X1 = 1, // 1 x 1

DOT_PIXEL_2X2,

// 2 एक्स 2

DOT_PIXEL_3X3,

// 3 एक्स 3

DOT_PIXEL_4X4,

// 4 एक्स 4

DOT_PIXEL_5X5,

// 5 एक्स 5

DOT_PIXEL_6X6,

// 6 एक्स 6

DOT_PIXEL_7X7,

// 7 एक्स 7

DOT_PIXEL_8X8,

// 8 एक्स 8

} DOT_PIXEL;

Dot_Style: बिंदु की शैली, आकार विस्तार का तरीका है

बिंदु को केंद्र मानकर विस्तार करें या बिंदु को निचला मानकर विस्तार करें

ऊपरी दाएं कोने पर बायां कोना।

टाइपडिफ एनम {

DOT_FILL_AROUND = 1,

DOT_FILL_RIGHTUP,

} DOT_STYLE;

एक रेखा खींचें: छवि कैश में (Xstart, Ystart) से (Xend, Yend) तक एक रेखा खींचें, आप रंग, रेखा की चौड़ाई और रेखा शैली चुन सकते हैं।

शून्य पेंट_ड्रालाइन(यूवर्ड एक्सस्टार्ट, यूवर्ड वाईस्टार्ट, यूवर्ड एक्सएंड, यूवर्ड येंड, यूडब्ल्यू

ORD रंग, LINE_STYLE लाइन_शैली , LINE_STYLE लाइन_शैली)

पैरामीटर:

Xstart: रेखा के प्रारंभिक बिंदु का X निर्देशांक

Ystart: रेखा के प्रारंभिक बिंदु का Y निर्देशांक

Xend: रेखा का X अंत बिंदु निर्देशांक

येंड: रेखा का Y अंत बिंदु निर्देशांक

रंग: रंग भरें

लाइन_विड्थ: लाइन की चौड़ाई, 8 डिफ़ॉल्ट चौड़ाई प्रदान करती है

टाइपडिफ एनम {

DOT_PIXEL_1X1 = 1, // 1 x 1

DOT_PIXEL_2X2,

// 2 एक्स 2

DOT_PIXEL_3X3,

// 3 एक्स 3

DOT_PIXEL_4X4,

// 4 एक्स 4

DOT_PIXEL_5X5,

// 5 एक्स 5

DOT_PIXEL_6X6,

// 6 एक्स 6

DOT_PIXEL_7X7,

// 7 एक्स 7

DOT_PIXEL_8X8,

// 8 एक्स 8

} DOT_PIXEL;

लाइन_स्टाइल: लाइन शैली, चुनें कि क्या लाइनें जुड़ी हुई हैं

एक सीधी रेखा या बिंदीदार रेखा।

टाइपडिफ एनम {

LINE_STYLE_SOLID = 0,

LINE_STYLE_DOTTED,

} लाइन_स्टाइल;

एक आयत बनाएं: छवि कैश में, (Xstart, Ystart) से (Xend, Yend) तक एक आयत बनाएं, आप रंग, रेखा की चौड़ाई और आयत के अंदर भरना है या नहीं चुन सकते हैं।

void पेंट_ड्रारेक्टेंगल(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD येन

d, UWORD रंग, DOT_PIXEL रेखा_चौड़ाई, DRAW_FILL ड्रा_भरें)

पैरामीटर:

Xstart: आयत के प्रारंभिक बिंदु का X निर्देशांक

Ystart: आयत के प्रारंभिक बिंदु का Y निर्देशांक

Xend: आयत के समापन बिंदु का X निर्देशांक

येंड: आयत के समापन बिंदु का Y निर्देशांक

रंग: रंग भरा हुआ

रेखा_चौड़ाई: आयत की चारों भुजाओं की चौड़ाई, बशर्ते

जी 8 डिफ़ॉल्ट चौड़ाई

टाइपडिफ एनम {

DOT_PIXEL_1X1 = 1, // 1 x 1

DOT_PIXEL_2X2,

// 2 एक्स 2

DOT_PIXEL_3X3,

// 3 एक्स 3

DOT_PIXEL_4X4,

// 4 एक्स 4

DOT_PIXEL_5X5,

// 5 एक्स 5

DOT_PIXEL_6X6,

// 6 एक्स 6

DOT_PIXEL_7X7,

// 7 एक्स 7

DOT_PIXEL_8X8,

// 8 एक्स 8

} DOT_PIXEL;

ड्रा_फ़िल: भरें, चाहे आयत के अंदर भरना हो

टाइपडिफ एनम {

DRAW_FILL_EMPTY = 0,

ड्रा_भरें_पूरा,

}DRAW_FILL;

एक वृत्त बनाएं: छवि कैश में, (X_Center Y_Center) को केंद्र में रखते हुए, त्रिज्या के साथ एक वृत्त बनाएं, आप रंग, रेखा की चौड़ाई और वृत्त के अंदर भरना है या नहीं, चुन सकते हैं।

शून्य पेंट_ड्रॉ सर्कल(यूवर्ड एक्स_सेंटर, यूवर्ड वाई_सेंटर, यूवर्ड रेडियस, यूवर्ड

रंग, DOT_PIXEL रेखा_चौड़ाई, DRAW_FILL ड्रा_भरें)

पैरामीटर:

X_Center: वृत्त के केंद्र का X निर्देशांक

Y_Center: Y वृत्त के केंद्र का निर्देशांक

त्रिज्या: वृत्त त्रिज्या

रंग: रंग भरें

लाइन_विड्थ: चाप की चौड़ाई, 8 डिफ़ॉल्ट चौड़ाई प्रदान करती है

टाइपडिफ एनम {

DOT_PIXEL_1X1 = 1, // 1 x 1

DOT_PIXEL_2X2,

// 2 एक्स 2

DOT_PIXEL_3X3,

// 3 एक्स 3

DOT_PIXEL_4X4,

// 4 एक्स 4

DOT_PIXEL_5X5,

// 5 एक्स 5

DOT_PIXEL_6X6,

// 6 एक्स 6

DOT_PIXEL_7X7,

// 7 एक्स 7

DOT_PIXEL_8X8,

// 8 एक्स 8

} DOT_PIXEL;

ड्रा_फ़िल: भरें, चाहे सर्कल के अंदर भरना हो

टाइपडिफ एनम {

DRAW_FILL_EMPTY = 0,

ड्रा_भरें_पूरा,

}DRAW_FILL;

Ascii वर्ण लिखें: छवि बफ़र में, बाएं शीर्ष के रूप में (Xstart Ystart) पर एक Ascii वर्ण लिखें, आप Ascii कोड दृश्य वर्ण फ़ॉन्ट लाइब्रेरी, फ़ॉन्ट अग्रभूमि रंग, फ़ॉन्ट पृष्ठभूमि रंग चुन सकते हैं।
void पेंट_ड्राचार(UWORD Xstart, UWORD Ystart, const char Ascii_Char, sFO NT* फ़ॉन्ट, UWORD Color_Foreground, UWORD Color_Background) पैरामीटर्स:
Xstart: वर्ण के बाएँ शीर्ष का
फ़ॉन्ट85*8 फ़ॉन्ट फ़ॉन्ट127*12 फ़ॉन्ट फ़ॉन्ट1611*16 फ़ॉन्ट फ़ॉन्ट2014*20 फ़ॉन्ट फ़ॉन्ट2417*24 फ़ॉन्ट रंग_फोरग्राउंड: फ़ॉन्ट रंग रंग_पृष्ठभूमि: पृष्ठभूमि रंग
अंग्रेजी वर्ण स्ट्रिंग लिखें: छवि कैश में, (Xstart Ystart) पर बाएं शीर्ष के रूप में, अंग्रेजी वर्णों की एक स्ट्रिंग लिखें, आप Ascii कोड विज़ुअल कैरेक्टर फ़ॉन्ट लाइब्रेरी, फ़ॉन्ट अग्रभूमि रंग, फ़ॉन्ट पृष्ठभूमि रंग चुन सकते हैं;
शून्य पेंट_ड्रॉस्ट्रिंग_EN(UWORD Xstart, UWORD Ystart, const char * pString, sFONT* फ़ॉन्ट, UWORD Color_Foreground, UWORD Color_Background) पैरामीटर्स:
Xstart: वर्ण के बाएँ शीर्ष का
फ़ॉन्ट85*8 फ़ॉन्ट फ़ॉन्ट127*12 फ़ॉन्ट फ़ॉन्ट1611*16 फ़ॉन्ट फ़ॉन्ट2014*20 फ़ॉन्ट फ़ॉन्ट2417*24 फ़ॉन्ट रंग_फोरग्राउंड: फ़ॉन्ट रंग रंग_पृष्ठभूमि: पृष्ठभूमि रंग
चीनी वर्ण स्ट्रिंग लिखें: छवि कैश में, (Xstart Ystart) पर बाएं शीर्ष के रूप में, चीनी वर्णों की एक स्ट्रिंग लिखें, आप GB2312 कोडित वर्ण फ़ॉन्ट, फ़ॉन्ट अग्रभूमि रंग, फ़ॉन्ट पृष्ठभूमि रंग चुन सकते हैं;
शून्य पेंट_ड्रॉस्ट्रिंग_CN(UWORD Xstart, UWORD Ystart, const char * pString, cFONT* फ़ॉन्ट, UWORD Color_Foreground, UWORD Color_Background) पैरामीटर्स:
Xstart: वर्ण के बाएँ शीर्ष का
फ़ॉन्ट12CNascii वर्ण फ़ॉन्ट 11*21, चीनी फ़ॉन्ट 16*21 फ़ॉन्ट24CNascii वर्ण फ़ॉन्ट 24*41, चीनी फ़ॉन्ट 32*41 रंग_फोरग्राउंड: फ़ॉन्ट रंग रंग_पृष्ठभूमि: पृष्ठभूमि रंग
संख्याएँ लिखें: छवि कैश में, बाएँ शीर्ष के रूप में (Xstart Ystart) पर संख्याओं की एक स्ट्रिंग लिखें, आप Ascii कोड विज़ुअल कैरेक्टर फ़ॉन्ट लाइब्रेरी, फ़ॉन्ट अग्रभूमि रंग, फ़ॉन्ट पृष्ठभूमि रंग चुन सकते हैं।
शून्य पेंट_ड्रॉनम(यूवर्ड एक्सपॉइंट, यूवर्ड वाईपॉइंट, int32_t नंबर, एसएफओएनटी* फॉन टी, यूवर्ड कलर_फोरग्राउंड, यूवर्ड कलर_बैकग्राउंड) पैरामीटर:
Xstart: वर्ण के बाएँ शीर्ष का : Ascii कोड विज़ुअल कैरेक्टर फ़ॉन्ट लाइब्रेरी फ़ॉन्ट फ़ोल्डर में निम्नलिखित फ़ॉन्ट प्रदान करती है:
फ़ॉन्ट85*8 फ़ॉन्ट फ़ॉन्ट127*12 फ़ॉन्ट फ़ॉन्ट1611*16 फ़ॉन्ट फ़ॉन्ट2014*20 फ़ॉन्ट फ़ॉन्ट2417*24 फ़ॉन्ट रंग_फोरग्राउंड: फ़ॉन्ट रंग रंग_पृष्ठभूमि: पृष्ठभूमि रंग
दशमलव के साथ संख्याएँ लिखें: छवि कैश में, (Xstart Ystart) बायाँ शीर्ष है, संख्याओं की एक स्ट्रिंग लिखें जिसमें दशमलव संख्याएँ हो सकती हैं, आप Ascii कोड विज़ुअल कैरेक्टर फ़ॉन्ट लाइब्रेरी, फ़ॉन्ट अग्रभूमि रंग, फ़ॉन्ट पृष्ठभूमि रंग चुन सकते हैं।
शून्य पेंट_ड्राफ़्लोटनम(यूवर्ड पैरामीटर:
Xstart: वर्ण के बाएँ शीर्ष का X निर्देशांक Ystart: वर्ण के बाएँ शीर्ष का Y निर्देशांक संख्या: यहाँ प्रदर्शित संख्या दोहरे प्रकार में सहेजी गई है, जो सामान्य आवश्यकताओं के लिए पर्याप्त है। दशमलव बिंदु t फ़ॉन्ट: Ascii कोड विज़ुअल कैरेक्टर फ़ॉन्ट लाइब्रेरी फ़ॉन्ट फ़ोल्डर में निम्न फ़ॉन्ट प्रदान करता है:
फ़ॉन्ट85*8 फ़ॉन्ट फ़ॉन्ट127*12 फ़ॉन्ट फ़ॉन्ट1611*16 फ़ॉन्ट फ़ॉन्ट2014*20 फ़ॉन्ट फ़ॉन्ट2417*24 फ़ॉन्ट रंग_फोरग्राउंड: फ़ॉन्ट रंग रंग_पृष्ठभूमि: पृष्ठभूमि रंग
प्रदर्शन समय: छवि कैश में, (Xstart Ystart) बायां शीर्ष है, और इसे कुछ समय के लिए प्रदर्शित किया जाएगा, और आप Ascii कोड विज़ुअल कैरेक्टर फ़ॉन्ट लाइब्रेरी, फ़ॉन्ट अग्रभूमि रंग और फ़ॉन्ट पृष्ठभूमि रंग चुन सकते हैं;
शून्य पेंट_ड्राटाइम(UWORD Xstart, UWORD Ystart, PAINT_TIME *pTime, sFONT* फ़ॉन्ट, UWORD Color_Background, UWORD Color_Foreground) पैरामीटर्स:
Xstart: वर्ण के बाएँ शीर्ष का पैरामीटर; फ़ॉन्ट: एएससीआई कोड विज़ुअल कैरेक्टर फ़ॉन्ट लाइब्रेरी फ़ॉन्ट फ़ोल्डर में निम्नलिखित फ़ॉन्ट प्रदान करती है:
फ़ॉन्ट85*8 फ़ॉन्ट फ़ॉन्ट127*12 फ़ॉन्ट फ़ॉन्ट1611*16 फ़ॉन्ट फ़ॉन्ट2014*20 फ़ॉन्ट फ़ॉन्ट2417*24 फ़ॉन्ट रंग_फोरग्राउंड: फ़ॉन्ट रंग रंग_पृष्ठभूमि: पृष्ठभूमि रंग
छवियां प्रदर्शित करें: जब (Xstart Ystart) बायां शीर्ष हो, तो W_Image की चौड़ाई और H_Image की ऊंचाई वाली एक छवि प्रदर्शित करें।
शून्य पेंट_ड्राइमेज(स्थिरांक अहस्ताक्षरित चार *छवि, यूवर्ड एक्सस्टार्ट, यूवर्ड वाईस्टार टी, यूवर्ड डब्ल्यू_इमेज, यूवर्ड एच_इमेज) पैरामीटर्स:
छवि: छवि पता, उस छवि जानकारी की ओर इशारा करता है जिसे आप प्रदर्शित करना चाहते हैं
Xstart: वर्ण के बाएँ शीर्ष का X निर्देशांक Ystart: फ़ॉन्ट के बाएँ शीर्ष का Y निर्देशांक W_Image: छवि की चौड़ाई H_Image: छवि की ऊँचाई
संसाधन
दस्तावेज़
योजनाबद्ध आरेख
3डी ड्राइंग
1.9 इंच एलसीडी मॉड्यूल 3डी ड्राइंग
1.9 इंच एलसीडी मॉड्यूल 3डी प्रीview file
डेमो
एलसीडी मॉड्यूल कोड.ज़िप
सॉफ़्टवेयर
Zimo221.7z
Image2Lcd2.9.zip
छवि निष्कर्षण ट्यूटोरियल
सामान्य प्रश्न
प्रश्न: 1.9 इंच एलसीडी की अधिकतम बिजली खपत क्या है
मॉड्यूल?
उत्तर: 3.3V 40mA

प्रश्न: 1.9 इंच एलसीडी मॉड्यूल की अधिकतम चमक क्या है? उत्तर:
3.3V 380cd/
सहायता
यदि आपको तकनीकी सहायता की आवश्यकता है, तो कृपया पृष्ठ पर जाएँ और टिकट खोलें।

दस्तावेज़ / संसाधन

वेवशेयर 1.9 इंच एलसीडी मिनी डिस्प्ले मॉड्यूल [पीडीएफ] उपयोगकर्ता गाइड
1.9 इंच एलसीडी मिनी डिस्प्ले मॉड्यूल, 1.9 इंच, एलसीडी मिनी डिस्प्ले मॉड्यूल, मिनी डिस्प्ले मॉड्यूल, डिस्प्ले मॉड्यूल

संदर्भ

एक टिप्पणी छोड़ें

आपकी ईमेल आईडी प्रकाशित नहीं की जाएगी। आवश्यक फ़ील्ड चिह्नित हैं *