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