聚豐項(xiàng)目 > 基于AB32VG1開發(fā)板的電子閱讀器
本閱讀器使用中科藍(lán)訊RISC-V內(nèi)核MCU AB32VG1作為主控芯片實(shí)現(xiàn)對(duì)SD卡里的txt格式的文件的讀取并顯示。主要特點(diǎn)如下: 1、 采用一塊2.8寸的TFT作為人機(jī)交互,利用觸摸屏實(shí)現(xiàn)電子圖書的導(dǎo)入,顯示,上翻頁(yè),下翻頁(yè)等功能。其中,為了減少IO資源的占用,本設(shè)計(jì)沒(méi)有采用傳統(tǒng)的8080并口TFT方案,而是采用了四線SPI接口顯示方案,缺點(diǎn)是刷新率太低,軟件模擬的SPI方案更加凸顯了這種缺點(diǎn)(前期該芯片的硬件SPI并沒(méi)有對(duì)外開放)。 2、 為了能夠顯示中文漢字,本設(shè)計(jì)中加入了GBK中文字庫(kù),使得本系統(tǒng)能夠顯示幾乎所有的中文漢字。GBK中文字庫(kù)文件的大小為幾百k,顯然直接存放在mcu內(nèi)部flash并不可能實(shí)現(xiàn),然而,AB32VG1開發(fā)板并沒(méi)有外擴(kuò)flash,那如何才能實(shí)現(xiàn)字庫(kù)文件的存放呢?最終,我們使用的方法是,將字庫(kù)文件存放在SD卡里面,需要顯示中文漢字的時(shí)候,從SD卡里面讀取對(duì)應(yīng)漢字的中文碼就可以了。通過(guò)這種巧妙的方法實(shí)現(xiàn)中文漢字的友好顯示。 3、 本設(shè)計(jì)使用RT-Thread實(shí)時(shí)操作系統(tǒng)作為載體,提高了MCU的資源利用率,使開發(fā)更簡(jiǎn)單。
vala
分享vala
團(tuán)隊(duì)成員
vala 嵌入式軟件
1. 主控采用中科藍(lán)訊開發(fā)板AB32VG1,AB32VG1是基于RISC-V內(nèi)核的MCU,最高120MHz系統(tǒng)主頻,8Mbit的flash和192KB的RAM,對(duì)于這樣一個(gè)配置,跑rt-thread和一些簡(jiǎn)單的GUI庫(kù)都毫無(wú)壓力。
2. 對(duì)于LCD的顯示,為了節(jié)省IO引腳資源,本方案采用SPI方式進(jìn)行通訊。
3. LCD屏已經(jīng)集成了觸摸芯片,也是通過(guò)SPI的方式與MCU通訊。
4. LED則使用板載的LED燈,主要功能是指示程序的運(yùn)行狀態(tài)。
模塊 | 名稱 | 功能 | MCU引腳 | 備注 |
LCD | CLK | SPI時(shí)鐘信號(hào) | PE6 | |
MOSI | SPI主機(jī)輸出引腳 | PE1 | ||
RESET | LCD復(fù)位引腳 | PA1 | ||
DC | 數(shù)據(jù)/命令控制信號(hào) | PE7 | ||
MISO | SPI主機(jī)輸入引腳 | PA0 | ||
CS1 | LCD片選 | PE0 | ||
觸摸 | CS2 | 觸摸芯片片選 | PE3 | |
PEN | 觸摸中斷信號(hào) | PE2 | ||
LED | LED | 指示燈 | PE4 | |
PC | TX | PC發(fā)送 | PA7 | USART1 |
RX | PC接收 | PA6 |
軟件部分主要分為4個(gè)TASK,分別為main,sd_mount,task_display,task_touch_scan。功能如下:
Main :功能初始化,郵箱初始化
sd_mount:實(shí)現(xiàn)SD卡的掛載
task_display:實(shí)現(xiàn)LCD的顯示
task_touch_scan:實(shí)現(xiàn)觸摸屏的檢測(cè)
上電首先進(jìn)行相關(guān)外設(shè)的初始化,然后是sd卡的掛載,掛載成功后進(jìn)行LCD的顯示和觸摸屏掃描,顯示和觸摸是在不同的任務(wù)里進(jìn)行的,任務(wù)之間通過(guò)郵箱進(jìn)行通訊。
源代碼如下: