欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 零知開源分享 - 增強(qiáng)板FSMC接口TFT顯示屏實(shí)驗(yàn) [打印本頁(yè)]

作者: roc2    時(shí)間: 2019-5-29 14:54
標(biāo)題: 零知開源分享 - 增強(qiáng)板FSMC接口TFT顯示屏實(shí)驗(yàn)
零知增強(qiáng)板與標(biāo)準(zhǔn)板相比,增強(qiáng)板增加了FSMC接口,該接口能很方便的連接TFT顯示屏,進(jìn)行LCD相關(guān)的顯示操作,下面以ILI9341型號(hào)為例介紹在零知-增強(qiáng)板上的使用方法。1、硬件準(zhǔn)備
(1)零知開發(fā)板-增強(qiáng)板




零知增強(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液晶顯示屏


(3)杜邦線若干
2、電路連接
為了高速顯示,我們使用LCD的16位模式,因此我們要把LCD模塊在硬件上切換到16位模式(一般是通過(guò)短路或者斷開一個(gè)焊點(diǎn))。這里我們先使用杜邦線連接,后面會(huì)考慮做一個(gè)擴(kuò)展板直接插入LCD模塊以去除連線的麻煩,線路如下進(jìn)行連接:



3、程序
確保連線正確即可上傳程序驗(yàn)證可不可行。使用零知開發(fā)工具。



零知實(shí)驗(yàn)室官網(wǎng)提供完整的工程,可以免費(fèi)獲取。完整工程需放置到軟件庫(kù)目錄的project目錄下,然后在零知開發(fā)工具中打開,已經(jīng)把接口進(jìn)行了二次封裝以便更易使用,在這個(gè)基礎(chǔ)上再進(jìn)行自己的開發(fā)將會(huì)非常容易。
核心代碼如下:
  1. /**********************************************************
  2. *    文件: fsmc-ili9341.ino      by 零知實(shí)驗(yàn)
  3. *    -^^- 零知開源,讓電子制作變得更簡(jiǎn)單! -^^-
  4. ************************************************************/

  5. #include "fsmc_tft.h"

  6. //圖片測(cè)試文件
  7. #include "image_board.h"
  8. #include "img1.h"
  9. #include "img2.h"
  10. #include "img3.h"
  11. #include "img4.h"
  12. #include "img5.h"
  13. #include "img6.h"
  14. #include "img7.h"

  15. FSMC_TFT tft;

  16. // 復(fù)位或上電后運(yùn)行一次:
  17. void setup() {
  18.     //在這里加入初始化相關(guān)代碼,只運(yùn)行一次:
  19.         Serial.begin(9600);

  20.         Serial.println("init lcd");

  21.         tft.begin();
  22.          
  23.         uint16_t lcd_id = tft.get_id();

  24.         Serial.print("init done, lcd id:0x");
  25.         Serial.println(lcd_id,HEX);
  26.          
  27.         /*********************************************************/
  28.          
  29.         //清屏
  30.         tft.clear(WHITE);
  31.                  
  32.         //設(shè)置背景:WHITE, 繪圖顏色:RED
  33.         tft.setColor(WHITE, RED);
  34.          
  35.         //顯示字符串,x,y坐標(biāo),尺寸大小
  36.         tft.print(16,10,24, "www點(diǎn)lingzhilab<font face="&quot;">點(diǎn)</font>com");
  37.          
  38.         tft.setColor(WHITE, BLUE);
  39.         //顯示自定義漢字,為減小代碼體積,在tft_font中開啟16號(hào)/24號(hào)字體,再然后這里就可以使用了,要與開啟字號(hào)對(duì)應(yīng)
  40.         tft.printCN(70,40,24,"零知開源");
  41.         tft.printCN(2,70,24,"讓電子制作變得更簡(jiǎn)單");
  42.          
  43.         //圖片表情
  44.         tft.showPicture(0,100,20,120,gImage_1);
  45.         tft.showPicture(30,100,50,120,gImage_2);
  46.         tft.showPicture(60,100,80,120,gImage_3);
  47.         tft.showPicture(90,100,110,120,gImage_4);
  48.         tft.showPicture(120,100,140,120,gImage_5);
  49.         tft.showPicture(150,100,170,120,gImage_6);
  50.         tft.showPicture(180,100,200,120,gImage_7);
  51.          
  52.         //圖像尺寸要對(duì)應(yīng),否則容易圖像混亂
  53.         tft.showPicture(0,140,237,320,gImage_pics);
  54.          
  55.         //繪制圓,坐標(biāo)80,80,半徑20
  56.         //tft.circle(80,80,20);
  57.          
  58.         //直線
  59.         //tft.line(80,100,90,200);
  60.          
  61.         //矩形
  62.         //tft.rectangle(120,100,140,200);
  63.          
  64.         //填充矩形
  65.         //tft.fill(150,100,170,200,RED);
  66.          
  67.         //數(shù)字,坐標(biāo)20,130,打印的數(shù)字:1234, 數(shù)字位數(shù):4, 尺寸:24
  68.         //tft.print(20,130,1234,4,24);
  69.          
  70.          
  71. }


  72. //一直循環(huán)執(zhí)行:
  73. void loop() {
  74.     // 在這里加入主要程序代碼,重復(fù)執(zhí)行:

  75. }
復(fù)制代碼
4、顯示效果
代碼編寫了顯示中文、英文、表情、圖片等功能,還提供了繪制直線、圓、矩形、填充矩形等功能,由于中文編碼太大,這里為了演示用僅添加了要用的幾個(gè)中文字,需要其他中文字可自行添加。
最終顯示效果如下:


完整工程代碼可到零知實(shí)驗(yàn)室官網(wǎng)免費(fèi)獲取。






歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1