|
零知增強(qiáng)板與標(biāo)準(zhǔn)板相比,增強(qiáng)板增加了FSMC接口,該接口能很方便的連接TFT顯示屏,進(jìn)行LCD相關(guān)的顯示操作,下面以ILI9341型號為例介紹在零知-增強(qiáng)板上的使用方法。1、硬件準(zhǔn)備
(1)零知開發(fā)板-增強(qiáng)板
好看一點(diǎn)的增強(qiáng)板.png (743.77 KB, 下載次數(shù): 37)
下載附件
2019-5-29 14:35 上傳
零知增強(qiáng)板采用Arduino mega2560相同的板框設(shè)計(jì),同時(shí)引腳接口和mega2560完全兼容。零知增強(qiáng)板使用了STM32F407VET6 作為MCU,包含70個(gè)IO引腳、16路PWM、16路ADC(12位精度)、6個(gè)UART接口,還擁有FSMC、DCMI、I2S、CAN、Ethernet、SDIO、SWD、USB-OTG等專用外設(shè)接口,其中的DCMI接口單獨(dú)引出可以直接接入OV2640/OV7670模塊使用;板上的一個(gè)USB轉(zhuǎn)串口設(shè)備接口可以配合零知開發(fā)工具實(shí)現(xiàn)一鍵下載,使用非常方便。
(2)TFT液晶顯示屏
2.4寸TFT.png (182.53 KB, 下載次數(shù): 54)
下載附件
2019-5-29 14:36 上傳
(3)杜邦線若干
2、電路連接
為了高速顯示,我們使用LCD的16位模式,因此我們要把LCD模塊在硬件上切換到16位模式(一般是通過短路或者斷開一個(gè)焊點(diǎn))。這里我們先使用杜邦線連接,后面會(huì)考慮做一個(gè)擴(kuò)展板直接插入LCD模塊以去除連線的麻煩,線路如下進(jìn)行連接:
引腳連接.jpg (70.71 KB, 下載次數(shù): 43)
下載附件
2019-5-29 14:37 上傳
3、程序
確保連線正確即可上傳程序驗(yàn)證可不可行。使用零知開發(fā)工具。
增強(qiáng)LCD界面.png (155.69 KB, 下載次數(shù): 45)
下載附件
2019-5-29 14:40 上傳
零知實(shí)驗(yàn)室官網(wǎng)提供完整的工程,可以免費(fèi)獲取。完整工程需放置到軟件庫目錄的project目錄下,然后在零知開發(fā)工具中打開,已經(jīng)把接口進(jìn)行了二次封裝以便更易使用,在這個(gè)基礎(chǔ)上再進(jìn)行自己的開發(fā)將會(huì)非常容易。
核心代碼如下:
- /**********************************************************
- * 文件: fsmc-ili9341.ino by 零知實(shí)驗(yàn)
- * -^^- 零知開源,讓電子制作變得更簡單! -^^-
- ************************************************************/
-
- #include "fsmc_tft.h"
-
- //圖片測試文件
- #include "image_board.h"
- #include "img1.h"
- #include "img2.h"
- #include "img3.h"
- #include "img4.h"
- #include "img5.h"
- #include "img6.h"
- #include "img7.h"
-
- FSMC_TFT tft;
-
- // 復(fù)位或上電后運(yùn)行一次:
- void setup() {
- //在這里加入初始化相關(guān)代碼,只運(yùn)行一次:
- Serial.begin(9600);
-
- Serial.println("init lcd");
-
- tft.begin();
-
- uint16_t lcd_id = tft.get_id();
-
- Serial.print("init done, lcd id:0x");
- Serial.println(lcd_id,HEX);
-
- /*********************************************************/
-
- //清屏
- tft.clear(WHITE);
-
- //設(shè)置背景:WHITE, 繪圖顏色:RED
- tft.setColor(WHITE, RED);
-
- //顯示字符串,x,y坐標(biāo),尺寸大小
- tft.print(16,10,24, "www點(diǎn)lingzhilab<font face=""">點(diǎn)</font>com");
-
- tft.setColor(WHITE, BLUE);
- //顯示自定義漢字,為減小代碼體積,在tft_font中開啟16號/24號字體,再然后這里就可以使用了,要與開啟字號對應(yīng)
- tft.printCN(70,40,24,"零知開源");
- tft.printCN(2,70,24,"讓電子制作變得更簡單");
-
- //圖片表情
- tft.showPicture(0,100,20,120,gImage_1);
- tft.showPicture(30,100,50,120,gImage_2);
- tft.showPicture(60,100,80,120,gImage_3);
- tft.showPicture(90,100,110,120,gImage_4);
- tft.showPicture(120,100,140,120,gImage_5);
- tft.showPicture(150,100,170,120,gImage_6);
- tft.showPicture(180,100,200,120,gImage_7);
-
- //圖像尺寸要對應(yīng),否則容易圖像混亂
- tft.showPicture(0,140,237,320,gImage_pics);
-
- //繪制圓,坐標(biāo)80,80,半徑20
- //tft.circle(80,80,20);
-
- //直線
- //tft.line(80,100,90,200);
-
- //矩形
- //tft.rectangle(120,100,140,200);
-
- //填充矩形
- //tft.fill(150,100,170,200,RED);
-
- //數(shù)字,坐標(biāo)20,130,打印的數(shù)字:1234, 數(shù)字位數(shù):4, 尺寸:24
- //tft.print(20,130,1234,4,24);
-
-
- }
-
-
- //一直循環(huán)執(zhí)行:
- void loop() {
- // 在這里加入主要程序代碼,重復(fù)執(zhí)行:
-
- }
復(fù)制代碼 4、顯示效果
代碼編寫了顯示中文、英文、表情、圖片等功能,還提供了繪制直線、圓、矩形、填充矩形等功能,由于中文編碼太大,這里為了演示用僅添加了要用的幾個(gè)中文字,需要其他中文字可自行添加。
最終顯示效果如下:
顯示結(jié)果.jpg (555.42 KB, 下載次數(shù): 52)
下載附件
2019-5-29 14:45 上傳
完整工程代碼可到零知實(shí)驗(yàn)室官網(wǎng)免費(fèi)獲取。
|
|