本設(shè)計(jì)是以STM32VET6作為主控制器,外圍輔以3.5寸TFT液晶、SD卡、VS1003(VS1003數(shù)據(jù)手冊(cè))音頻解碼器、spi flash、AL422(AL422 數(shù)據(jù)手冊(cè)) FIFO Memory、XPT2046(XPT2046數(shù)據(jù)手冊(cè))觸摸IC、pl2303(pl2303數(shù)據(jù)手冊(cè)) USB轉(zhuǎn)串口IC等,實(shí)現(xiàn)了一個(gè)功能豐富的小設(shè)備。本設(shè)計(jì)中使用的TFT作為顯示單元,屏是3.5寸的分辨率320*480,控制IC為ILI9481,通過(guò)STM32的FSMC總線與系統(tǒng)相連,寫屏速度還是挺快的,如果有片大RAM做顯存,通過(guò)DMA總線操作的話就更快了,不過(guò)之前沒(méi)考慮到啊!使用SD卡作為數(shù)據(jù)存儲(chǔ),這里充分利用片子的優(yōu)勢(shì),用得是SDIO接口,比SPI快多了,能夠支持FAT16/32文件系統(tǒng)。
本設(shè)計(jì)實(shí)現(xiàn)的主要功能描述:
1.音樂(lè)播放,使用vs1003音頻解碼芯片,能支持大部分主流的音頻格式,可以上一曲、下一曲,可以快退快進(jìn),播放界面是模仿了千千靜聽(tīng)中的“炫紫神話”皮膚,界面的實(shí)現(xiàn)完全是通過(guò)軟件繪制的方式,沒(méi)有貼任何圖片,為了實(shí)現(xiàn)那些層次陰影的效果,綜合運(yùn)用了顏色漸變,顏色疊加的方法,特別是那個(gè)圓形按鈕花了不少時(shí)間,大家看看是不是還有點(diǎn)立體感呢,在界面中也顯示了頻譜,不過(guò)頻譜數(shù)據(jù)是從vs1003中讀取的,好像不怎么準(zhǔn)確的,不過(guò)也將就了。(注:EQ、LRC功能沒(méi)實(shí)現(xiàn),所以那兩個(gè)按鈕也是無(wú)用的)
2.圖片播放部分主要是一直正點(diǎn)原子的代碼,能支持BMP、JPEG圖片的顯示。在選中播放功能后顯示進(jìn)入文件瀏覽界面,界面中只會(huì)顯示需要播放的文件格式與文件夾,比如進(jìn)入圖片播放的文件瀏覽界面中,就只會(huì)顯示可以打開(kāi)的圖片與文件夾,其他功能也是一樣。另外在文件瀏覽中,可以通過(guò)上下左右滑動(dòng)觸摸來(lái)翻頁(yè)的。
3.電子書(shū)閱讀功能,可以打開(kāi)常見(jiàn)的文本文件,如.txt、.lrc、.c、.h,系統(tǒng)中集成了GB2312字庫(kù),有12*12、16*16、24*24三種大小,它們被存儲(chǔ)在一片SPI FLASH中,型號(hào)是EN25F16。
4.照相機(jī)功能,這個(gè)沒(méi)有實(shí)現(xiàn)完成,可以將攝像頭的數(shù)據(jù)取來(lái)并實(shí)時(shí)顯示在TFT屏上,但不能保存照片,可以支持ov7670和ov7725兩種攝像頭,攝像頭是通過(guò)AL422 FIFO與MCU接口的,圖像數(shù)據(jù)先進(jìn)FIFO中,然后MCU根據(jù)場(chǎng)中斷開(kāi)始提取數(shù)據(jù),可以刷個(gè)4~5幀吧,具體沒(méi)測(cè),由于現(xiàn)在手頭上沒(méi)攝像頭了,沒(méi)有上這部份功能的圖,但程序中是有這部份功能的。
5.拼圖游戲這部份是移植的網(wǎng)絡(luò)中的代碼,不過(guò)實(shí)現(xiàn)起來(lái)也不難,比較容易理解,游戲分3個(gè)難度等級(jí),3*3、4*4、5*5,也沒(méi)太多可說(shuō)的,看圖吧。
6.時(shí)間顯示部分實(shí)現(xiàn)了一個(gè)指針式的時(shí)鐘,這里的表盤是圖片了,因?yàn)檐浖嫷脑挶容^麻煩,指針的繪制參考了ucgui中畫多邊形的代碼,并且使用了透明效果,指針遮擋部位下面的文字圖案依然能看到的。溫度采集用得是片內(nèi)的線性溫度傳感器,溫度偏高了,不過(guò)硬件上預(yù)留了DS18B20的位置,暫未使用。
7.觸摸畫板功能可以實(shí)時(shí)顯示在觸屏上畫下的線條,這個(gè)功能比較簡(jiǎn)單了,不過(guò)也有待完善。
8.文件瀏覽跟前面提到的進(jìn)入播放功能后打開(kāi)的瀏覽界面是一樣的,只是這里不分文件格式了,任何格式的文件都會(huì)顯示,方便查看。
9.系統(tǒng)設(shè)定部分提供了一些設(shè)置系統(tǒng)參數(shù)的接口,如日期時(shí)間設(shè)定、觸摸校正,還有一些設(shè)置沒(méi)完成。
10.USB設(shè)備功能,STM32自帶了一個(gè)USB2.0設(shè)備接口,可方便的實(shí)現(xiàn)一些USB傳輸功能,本系統(tǒng)通過(guò)USB與計(jì)算機(jī)連接,可以枚舉成USB mass storage和HID Mouse兩種設(shè)備,mass storage功能實(shí)際就是將系統(tǒng)枚舉為一個(gè)U盤了,可以方便通過(guò)計(jì)算機(jī)管理系統(tǒng)SD卡中的文件,速度不很快,200~300KB左右,板子背部有個(gè)LED可表示USB的讀寫狀態(tài),HID Mouse就是將系統(tǒng)枚舉為一個(gè)鼠標(biāo)了,通過(guò)在觸屏上滑動(dòng),點(diǎn)擊控制計(jì)算機(jī)上鼠標(biāo)指針的行為,不過(guò)由于電阻屏的特點(diǎn),我也沒(méi)仔細(xì)寫代碼,使用效果不好,不過(guò)USB通信這塊是完善的,另外本設(shè)計(jì)中還加入了一片pl2303 USB轉(zhuǎn)口芯片,該芯片傳出串口與STM32的UART1相連,可方便的通過(guò)串口下載程序,或打印log調(diào)試信息等。
在做這個(gè)畢業(yè)設(shè)計(jì)中,硬件的設(shè)計(jì)當(dāng)時(shí)考慮了很多,其實(shí)還預(yù)留了一些功能,比如MIC、IR,不過(guò)暫時(shí)未使用,電源部分,將TFT供電與其他部分的供電隔開(kāi)了,是各自單獨(dú)用了一片穩(wěn)壓IC的,而且各部分的供電是可以通過(guò)左側(cè)邊的幾個(gè)排陣控制的,這里還引出幾個(gè)未用的引腳供試驗(yàn)用,另外為了充分利用這塊板,TFT所有的引腳通過(guò)左上邊的一個(gè)座子引出了,可以單獨(dú)去使用這個(gè)TFT,由于供電是隔開(kāi)的,所以不必?fù)?dān)心其他部分的干擾,也不會(huì)給板上的STM32供電。