探索S5U13781R01C100 Shield圖形庫:從安裝到應(yīng)用
在電子設(shè)計領(lǐng)域,圖形顯示功能的實現(xiàn)一直是一個重要的環(huán)節(jié)。今天,我們將深入探討Seiko Epson的S5U13781R01C100 Shield圖形庫,它能極大地簡化圖形和文本顯示到連接在S5U13781R01C100 Shield上的面板的過程。
文件下載:S5U13781R01C100.pdf
一、引言
S5U13781R01C100 Shield圖形庫是專門為Arduino Due微控制器板設(shè)計的軟件庫。Arduino Due是一款廣受歡迎的開發(fā)板,而這個圖形庫為其增添了強大的圖形顯示能力。該庫可以讓我們輕松地在連接的LCD面板上顯示圖形和文本。同時,S5U13781R01C100 Shield TFT板還可用于評估低成本的S1D13L01 LCD控制器,它與S1D13781有相似的功能集,但也存在一些差異。
S1D13781與S1D13L01的對比
| 特性差異 | S1D13L01 | S1D13781 |
|---|---|---|
| 顯示接口 | 僅支持有源TFT顯示器 | 支持無源STN和有源TFT顯示器 |
| BitBLT支持 | 軟件BitBLT | 硬件BitBLT引擎(移動BitBLT、實心填充BitBLT) |
| 溫度范圍 | -40至85°C | -40至85°C或 -40至105°C |
| 封裝 | QFP15 128引腳 | QFP15 100引腳 |
二、系統(tǒng)要求
在安裝S5U13781R01C100 Shield圖形庫之前,我們需要準備好以下硬件和軟件:
- 硬件:S5U13781R01C100 Shield TFT板、Arduino Due控制器板、LCD面板(默認配置為480x272 @ 24bpp)、Micro USB電纜(為Arduino Due供電并可用于串口調(diào)試)。
- 軟件:Arduino Sketch IDE軟件v1.6.2或更高版本、S5U13781R01C100圖形庫包。
需要注意的是,Arduino Sketch IDE軟件需要在Windows、Mac OS X或Linux平臺上運行。
三、安裝步驟
硬件安裝
- 連接S5U13781R01C100 Shield到Arduino Due
- 將S5U13781R01C100 Shield的J1 Header連接到Arduino Due的“Power” Socket。
- 將S5U13781R01C100 Shield的J2 Header連接到Arduino Due的SPI Socket。
- 將S5U13781R01C100 Shield的J3 Header連接到Arduino Due的“Digital” (PWML) Socket。
- 正確對齊兩塊板,然后輕輕按壓,直到引腳完全插入對應(yīng)的插座。
- 連接LCD面板
- 連接Arduino Due到開發(fā)平臺
軟件安裝
- 安裝Arduino Sketch IDE
- 訪問Arduino網(wǎng)站,下載與操作系統(tǒng)兼容的Sketch版本。安裝完成后,就可以進行下一步。
- 安裝Arduino SAM板(包括Due)
- 在Sketch菜單中點擊“Tools->Board->Boards Manager...”,確認“Arduino SAM Boards (32 - bits ARM Cortex - M3)”板包是否安裝。如果未安裝,安裝與Sketch IDE版本匹配的包。
- 安裝S5U13781R01C100圖形庫和示例草圖
- 將S5U13781R01C100 Shield圖形庫的.zip存檔解壓到開發(fā)平臺的臨時位置。
- 在Sketch菜單中點擊“Sketch->Include Library->Add .ZIP Library...”,選擇解壓后的“S1d13781.zip”文件進行安裝。
- 確認庫是否安裝成功,可以點擊“Sketch->Include Library”,查看列表底部是否有“S1d13781”條目。
- 使用Sketch IDE編譯示例草圖并上傳到Arduino Due
四、使用圖形庫
修改現(xiàn)有草圖
圖形庫提供了多個示例草圖,例如“781_gltest.ino”展示了圖形庫的一些圖形功能,“781_RegisterAccessExample”展示了如何直接讀寫S1D13781寄存器,“781_MemoryAccessExample”展示了如何直接讀寫S1D13781內(nèi)存。要修改草圖,只需在Sketch的loop()函數(shù)中添加調(diào)用圖形庫函數(shù)的新行。例如,要在LCD面板上顯示一條從位置(20,20)到位置(100,100)的綠色線,可以添加以下代碼:
result = lcdc.drawLine( S1d13781_gfx::window_Main,20,20,100,100,0x0000FF00 );
sleep(2000);
創(chuàng)建新草圖
創(chuàng)建新草圖時,需要在基本模板中添加以下元素:
#include
#include
#include
//create an instance of S1d13781 for us to work with
S1d13781_gfx lcdc;
void setup() {
//start serial for serial monitor
Serial.begin(9600);
//start the S1d13781 library
lcdc.begin();
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
使用串口監(jiān)視器
當Arduino Due通過編程端口連接時,可以使用串口監(jiān)視器??梢酝ㄟ^Sketch工具欄上的“Serial Monitor”按鈕或Sketch菜單中的“Tools->Serial Monitor”啟動。串口監(jiān)視器可以顯示Arduino Due上運行的應(yīng)用程序的信息和消息,對于調(diào)試修改后的應(yīng)用程序代碼或創(chuàng)建新應(yīng)用程序非常有幫助。
使用字體
S5U13781R01C100 Shield圖形庫支持使用可編程字體進行文本繪制。字體依賴于兩個組件:一個以.pbm圖形文件(二進制)存儲的1 bpp圖像文件和一個以.pfi文件(二進制)存儲的便攜式字體索引。圖形庫包提供了一些示例字體,包括.pbm圖像文件和.pfi索引文件。要在草圖應(yīng)用程序中使用字體,可以將二進制.pbm和二進制.pfi文件轉(zhuǎn)換為簡單的字節(jié)數(shù)組,然后在需要時將其傳遞給S1d13781_gfx::createFont()方法。例如:
extern byte ascii9x13IndexData[]; //test font index data
extern byte ascii9x13ImageData[]; //test font image data
testfont = lcdc.createFont(ascii9x13ImageData, 1453, ascii9x13IndexData, 498);
五、理解圖形庫
庫結(jié)構(gòu)
圖形庫由以下文件組成:
- S1d13781.h:S1d13781類的頭文件,包含圖形庫硬件相關(guān)功能的概述和配置SPI接口的常量。
- S1d13781.cpp:S1d13781類的源文件,包含訪問S1D13781 LCD控制器硬件級功能的方法。
- S1d13781_gfx.h:S1d13781_gfx類的頭文件,提供圖形和文本方法的概述。
- S1d13781_gfx.cpp:S1d13781_gfx類的源文件,包含圖形和文本顯示方法。
- S1d13781_init.h:包含用于初始化S1D13781硬件寄存器的值的結(jié)構(gòu)。
- S1d13781_registers.h:包含S1D13781硬件寄存器的#define定義,建議在訪問寄存器時使用這些定義以避免意外訪問未定義的寄存器。
- keywords.txt:Arduino Sketch IDE庫支持所需的文件,新的類和方法應(yīng)添加到該文件中。
修改圖形庫
圖形庫提供了完整的源代碼,允許用戶進行定制和修改。建議使用外部代碼編輯工具進行修改。安裝在Sketch IDE中的圖形庫可以在“Arduino/libraries/S1d13781”文件夾中直接修改,也可以在“off - tree”修改后重新作為.zip庫安裝。重新安裝時,需要先從“Arduino/libraries”文件夾中移除現(xiàn)有的S1d13781庫。
自定義S1D13781初始化值
如果需要自定義S1D13781 LCD控制器的寄存器初始化值,可以更新S1d13781_init.h文件中的結(jié)構(gòu)??梢允褂肊pson Electronics America網(wǎng)站上的S1d13781windows實用程序“781cfg.exe”生成新的值,然后將生成的S1D13781.h文件中的值更新到S1d13781_init.h文件中,可能需要進行一些小的修改。
六、庫參考
圖形庫分為兩個類:S1d13781和S1d13781_gfx。
S1d13781類
該類提供了硬件級支持,包括以下公共方法:
- S1d13781():類的構(gòu)造函數(shù)。
- S1d13781::begin():設(shè)置SPI接口并配置寄存器。
- S1d13781::regWrite():向S1D13781寄存器寫入一個字(16位無符號整數(shù))。
- S1d13781::regRead():從S1D13781寄存器讀取一個字(16位無符號整數(shù))。
- S1d13781::regModify():使用位掩碼修改S1D13781寄存器的內(nèi)容。
- S1d13781::regSetBits():使用位掩碼設(shè)置S1D13781寄存器中的特定位。
- S1d13781::regClearBits():使用位掩碼清除S1D13781寄存器中的特定位。
- S1d13781::memWriteByte():向S1D13781視頻內(nèi)存的指定地址偏移寫入一個字節(jié)(8位)值。
- S1d13781::memReadByte():從S1D13781視頻內(nèi)存的指定地址偏移讀取一個字節(jié)(8位)值。
- S1d13781::memWriteWord():向S1D13781視頻內(nèi)存的指定地址偏移寫入一個字(16位)值。
- S1d13781::memReadWord():從S1D13781視頻內(nèi)存的指定地址偏移讀取一個字(16位)值。
- S1d13781::memBurstWriteBytes():向S1D13781視頻內(nèi)存的指定地址偏移突發(fā)寫入指定數(shù)量的字節(jié)(8位)值。
- S1d13781::memBurstReadBytes():從S1D13781視頻內(nèi)存的指定地址偏移突發(fā)讀取指定數(shù)量的字節(jié)(8位)值。
- S1d13781::memBurstWriteWords():向S1D13781視頻內(nèi)存的指定地址偏移突發(fā)寫入指定數(shù)量的字(16位)值。
- S1d13781::memBurstReadWords():從S1D13781視頻內(nèi)存的指定地址偏移突發(fā)讀取指定數(shù)量的字(16位)值。
- S1d13781::lcdSetRotation():設(shè)置主層的旋轉(zhuǎn)角度。
- S1d13781::lcdGetRotation():返回主層的當前旋轉(zhuǎn)角度。
- S1d13781::lcdSetColorDepth():設(shè)置主層的顏色深度。
- S1d13781::lcdGetColorDepth():返回主層的當前顏色深度。
- S1d13781::lcdGetBytesPerPixel():返回基于主層顏色深度的每個像素使用的字節(jié)數(shù)。
- S1d13781::lcdSetStartAddress():設(shè)置主層的內(nèi)存起始地址。
- S1d13781::lcdGetStartAddress():返回主層的內(nèi)存起始地址。
- S1d13781::lcdSetWidth():設(shè)置物理LCD的寬度。
- S1d13781::lcdGetWidth():返回主層的寬度。
- S1d13781::lcdSetHeight():設(shè)置物理LCD的高度。
- S1d13781::lcdGetHeight():返回主層的高度。
- S1d13781::lcdGetStride():返回主層的步幅(每行的字節(jié)數(shù))。
- S1d13781::pipSetDisplayMode():設(shè)置PIP窗口的效果(閃爍/淡入淡出)。
- S1d13781::pipGetDisplayMode():返回PIP窗口的當前效果。
- S1d13781::pipSetRotation():設(shè)置PIP層的旋轉(zhuǎn)角度。
- S1d13781::pipGetRotation():返回PIP層的當前旋轉(zhuǎn)角度。
- S1d13781::pipIsOrthogonal():確定主層和PIP層是否具有相同的旋轉(zhuǎn)角度。
- S1d13781::pipSetColorDepth():設(shè)置PIP層的顏色深度。
- S1d13781::pipGetColorDepth():返回PIP層的當前顏色深度。
- S1d13781::pipGetBytesPerPixel():返回基于PIP層顏色深度的每個像素使用的字節(jié)數(shù)。
- S1d13781::pipSetStartAddress():設(shè)置PIP層的內(nèi)存起始地址。
- S1d13781::pipGetStartAddress():返回PIP層的內(nèi)存起始地址。
- S1d13781::pipSetWidth():設(shè)置PIP窗口的寬度。
- S1d13781::pipGetWidth():返回PIP窗口的寬度。
- S1d13781::pipSetHeight():設(shè)置PIP窗口的高度。
- S1d13781::pipGetHeight():返回PIP窗口的高度。
- S1d13781::pipGetStride():返回PIP窗口的步幅(每行的字節(jié)數(shù))。
- S1d13781::pipSetPosition():設(shè)置PIP窗口相對于LCD面板左上角的位置。
- S1d13781::pipGetPosition():獲取PIP窗口相對于LCD面板左上角的位置。
- S1d13781::pipSetFadeRate():設(shè)置PIP窗口的閃爍/淡入淡出周期。
- S1d13781::pipGetFadeRate():返回PIP窗口的當前閃爍/淡入淡出周期。
- S1d13781::pipWaitForFade():等待當前PIP閃爍/淡入淡出操作完成。
- S1d13781::pipSetAlphaBlendStep():設(shè)置PIP窗口的Alpha混合步長。
- S1d13781::pipGetAlphaBlendStep():返回PIP窗口的Alpha混合步長。
- S1d13781::pipSetAphaBlendRatio():設(shè)置PIP窗口的Alpha混合比例。
- **S1d1
-
圖形庫
+關(guān)注
關(guān)注
0文章
22瀏覽量
9243
發(fā)布評論請先 登錄
探索S5U13T04P00C100評估板:功能、配置與應(yīng)用
Epson S5U13781R00C10M:嵌入式LCD顯示應(yīng)用開發(fā)利器
S5U13743P00C100評估板:S1D13743移動圖形引擎的開發(fā)利器
S5U13742P00C100評估板:S1D13742移動圖形引擎的理想開發(fā)平臺
S5U13706P00C100評估板:S1D13706嵌入式內(nèi)存LCD控制器的理想之選
S1D13700評估板:嵌入式圖形顯示控制的利器
探索S1D13517顯示控制器評估板:功能、配置與應(yīng)用
探索 S5U13515P00C100 評估板:開啟 S2D13515 顯示控制器開發(fā)之旅
S5U13513P00C100評估板使用指南:解鎖S1D13513顯示控制器潛力
S5U13506P00C100 PCI評估板用戶手冊解讀
FTDI Friend使用指南:從驅(qū)動安裝到芯片編程
探索S1C17M01:超低功耗MCU的卓越性能與應(yīng)用潛力
深度剖析MB86R01:打造卓越圖形應(yīng)用解決方案
探索BGT60ATR24C ES Shield:XENSIV? 60 GHz雷達系統(tǒng)平臺的奧秘
STM32U5A9J-DK探索套件技術(shù)解析與應(yīng)用指南
探索S5U13781R01C100 Shield圖形庫:從安裝到應(yīng)用
評論