首先为啥移植这个,因为之前移植QT的时候是想着自己编译一个包放进去,但是没有成功因为缺少FB设备。恰巧我们开发板自己走的是GPU,所以没有传统的FB设备出现。这次借助spi_tft实现传统的FB设备。 首先就是修改我们的设备树,尝试多次后发现这个是可以使用的。 上面就是我们使用到的所有IO口。 板子大概是这样的,还有需要修改的地方,比如需要给sck和mosi两个管脚加上上拉电阻,这样方可通信成功。 其此我们是用应该叫ST7789VW。因为这个屏幕的分辨率是240*240的。内核驱动里面的是不一致的会导致不显示或者显示出问题。其次就是还需要修改驱动。 fb_st7789v.c - static int init_display(struct fbtft_par *par)
9 \* g/ K7 m2 o - 7 L; B2 p( U9 G8 f, T- i
- {# G0 ]: d3 y& H" i$ `+ P& _
- ; j- r: G0 g, k* }. m
- par->fbtftops.reset(par);' B- c5 P; [. k# ?# t
( b3 ~* O0 p0 p3 Y0 J( p- mdelay(50);+ @- o N$ s0 _2 i! c. Q, j
3 l+ H& L3 C4 u# |! T- write_reg(par,0x36,0x00);9 H' ]' ^1 g+ K+ U( j
- . J% J* k0 t8 j
- write_reg(par,0x3A,0x05);9 j) q L2 F: h6 C. o' W
( H1 I, Q* Z t3 |) v- write_reg(par,0xB2,0x0C,0x0C,0x00,0x33,0x33);
, D0 \+ \+ l. W' Q! E* v
% O4 @( V8 ^( n+ L: ~; r/ x- write_reg(par,0xB7,0x35);
* _3 X' A7 h( `7 z/ f
e$ L) g* ?8 ~5 C* E, n- write_reg(par,0xBB,0x19);
. G% {7 M# P: g, f% M - ) ?7 _( v5 `, F& J: r- j. s
- write_reg(par,0xC0,0x2C);
- y I" h1 x, B' Z9 ~
! N7 V2 D. @- I- z$ z- write_reg(par,0xC2,0x01);2 L4 b: Y* V, c" R9 k& b
5 e; g2 A9 N2 o$ Z) P4 t3 i- write_reg(par,0xC3,0x12);
* \, D5 j/ U9 W: [% p1 S
+ H" Z1 k7 A+ u% }' _5 d' f- write_reg(par,0xC4,0x20);
W% g( A5 t" S; c Q: N - $ p8 f/ V, u% M& n' k0 N
- write_reg(par,0xC6,0x0F);
/ S% D" }7 `0 W( `! O( p - . K+ j! S) M. S0 w* H9 u
- write_reg(par,0xD0,0xA4,0xA1);! h3 d& I% R6 r$ `" B" J
- ' G9 i% A) M0 D
- write_reg(par,0xE0,0xD0,0x04,0x0D,0x11,0x13,0x2B,0x3F,0x54,0x4C,0x18,0x0D,0x0B,0x1F,0x23);& G: T% X1 f X U6 D
4 e6 Q7 T+ s9 I! M, b, V0 Y- write_reg(par,0xE1,0xD0,0x04,0x0C,0x11,0x13,0x2C,0x3F,0x44,0x51,0x2F,0x1F,0x1F,0x20,0x23);
9 v( D6 R4 V4 W0 p6 m6 z! e
* t x# n5 {; H$ n& x% I9 m- write_reg(par,0x21);9 Q' G0 r' Z H- b$ W: M
- ' l: V" _) _" S! d& \# v' J0 g% f
- write_reg(par,0x11);, \& K# X0 V$ |/ Q2 M9 e0 ]! C
( }4 B) ^+ l6 @$ O. M7 Y- mdelay(50);+ O/ }/ o' l% k" N2 e- i( T
3 q% R6 h! p* C% p/ r- write_reg(par,0x29);7 a$ k& W) X) R( x
8 [" A7 o* U, ?0 ?, m1 b- mdelay(200);
^' |; h8 u; Z% L5 m: b - 5 \4 u% N, j; E4 I; ?
- return 0;& `" J0 k* Z6 @0 [% T8 y- b
- " u' }- h; c) }% g9 h
- }
复制代码 1 [- D4 d1 _0 `7 Z# p, s
初始化显示给修改了。 fbtft-core.c里面也需要修改。这个可以参考网上的教程。 之后在这个路径下把驱动使能。 我们还可以让其显示内核logo。不过我们这里就不修改了。直接用其自带的图片。 可以看到两个小企鹅,因为MP157是双核CPU。 之后启动。 我们可以把我们自己制作的QT解压到目录,然后用命令设置环境变量。之后就可以启动测试了。我们编译的里面包含例程。所以直接运行例程。 这样我们之前自己编译的也就成功了。 还可以用命令测试设备。 如fb-test fb-rect显示随机色块。 $ l/ v5 V9 _2 @( }5 o) c" x4 Z
|