这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 【炫Q-STM32】NUCLEO L053R8 边玩边学(七)-SPI_TFT_

共22条 1/3 1 2 3 跳转至

【炫Q-STM32】NUCLEO L053R8 边玩边学(七)-SPI_TFT_ILI9341

专家
2015-11-22 22:27:50     打赏

计划弄个彩色屏幕,其实卓大好久前就弄好了,只是没有发帖子,也学着弄吧,其间出现各种错误,感谢卓大的指导

首先找到一块SPI_TFT_ILI9341屏幕,这个是香蕉派上的,怎么接线呢,一头雾水



专家
2015-11-22 22:29:32     打赏
2楼

听说不用自己写东西,直接去搜现成的就可以了,搜索ILI9341,找到一个貌似大神的,其实就是大神


专家
2015-11-22 22:32:39     打赏
3楼

结果编译各种错误,首先是没有字模,要去说明里导入另一个库


专家
2015-11-22 22:33:55     打赏
4楼

这个错误原自引脚定义,参考arduino,卓大给出的

SPI_TFT_ILI9341 TFT(D11, D12, D13, D10, D9, D8, "TFT"); // mosi, miso, sclk, cs, reset, dc

 


专家
2015-11-22 22:34:55     打赏
5楼

缺少p1其实是一幅画,不过似乎空间不足,引用进来错误更多了,后来删掉了


专家
2015-11-22 22:35:49     打赏
6楼

这个也要删掉,说是不支持


专家
2015-11-22 22:36:50     打赏
7楼

最后,最后终于亮了,也删得差不多了


专家
2015-11-22 22:38:06     打赏
8楼

写了一段小程序,其实是假的小游戏,有机会实现吧

// example to test the TFT Display
// Thanks to the GraphicsDisplay and TextDisplay classes
// test2.bmp has to be on the mbed file system

#include "stdio.h"
#include "mbed.h"
#include "SPI_TFT_ILI9341.h"
#include "string"
#include "Arial12x12.h"
#include "Arial24x23.h"
#include "Arial28x28.h"
#include "font_big.h"

#include <time.h>
#include <stdlib.h>

SPI_TFT_ILI9341 TFT(D11, D12, D13, D10, D9, D8, "TFT"); // mosi, miso, sclk, cs, reset, dc

int x=20;
int y=60;
int dx=10;
int dy=10;
int l=20;
int x1=0;
int x2=0;
int x3=0;
int main()
{

    TFT.claim(stdout);      // send stdout to the TFT display

    TFT.foreground(White);
    TFT.background(Blue);

    TFT.set_orientation(1);
    TFT.cls();

    TFT.set_font((unsigned char*) Neu42x35);
    TFT.locate(40,5);
    TFT.printf("Hello Mbed");

    TFT.rect(10,50,310,230,Red);

    TFT.set_font((unsigned char*) Arial24x23);
    srand(time(0));

    while(1) {
        x3=x;
        x1=x-l;
        x2=x+l;
        if (x1<12) x1=12;
        if (x2>307) x2=307;
        TFT.foreground(White);
        TFT.locate(x,y);
        TFT.printf("o");
        TFT.fillrect(x1,225,x2,228,Yellow);
        wait(0.1);
        TFT.foreground(Blue);
        TFT.locate(x,y);
        TFT.printf("o");
        TFT.fillrect(x1,225,x2,228,Blue);
        x+=dx;
        y+=dy;
        if (x>280) {
            x=280;
            dx=-(rand()%30+20);
        }
        if (x<30) {
            x=30;
            dx=(rand()%30+20);
        }
        if (y>200) {
            y=200;
            dy=-(rand()%30+20);
        }
        if (y<70) {
            y=70;
            dy=(rand()%30+20);
        }
    }
}

 


专家
2015-11-22 22:39:31     打赏
9楼

奇怪,画面为啥躺着,凑合看吧


专家
2015-11-22 22:40:36     打赏
10楼
好了,就这些,外边下着大雪,明天怎么出去还是个问题

共22条 1/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]