首先为啥移植这个,因为之前移植QT的时候是想着自己编译一个包放进去,但是没有成功因为缺少FB设备。恰巧我们开发板自己走的是GPU,所以没有传统的FB设备出现。这次借助spi_tft实现传统的FB设备。 首先就是修改我们的设备树,尝试多次后发现这个是可以使用的。 上面就是我们使用到的所有IO口。 板子大概是这样的,还有需要修改的地方,比如需要给sck和mosi两个管脚加上上拉电阻,这样方可通信成功。 其此我们是用应该叫ST7789VW。因为这个屏幕的分辨率是240*240的。内核驱动里面的是不一致的会导致不显示或者显示出问题。其次就是还需要修改驱动。 fb_st7789v.c - static int init_display(struct fbtft_par *par), R5 l& A$ L$ D* @
T) {+ [1 |2 x. z0 a; U- {
1 s! @ ~' h& D- z \8 q9 b& i - ! P7 a' k' ^3 p* q: p8 Y1 a
- par->fbtftops.reset(par);
0 Q; K9 M; a7 p5 \4 ~
: I, p0 g) _6 Z: F+ N- mdelay(50);
& E7 \. X. g* ^1 x& s - 7 R/ K$ S& ]3 I! r+ g: j% b
- write_reg(par,0x36,0x00);: d8 _' B u% D' z
- % P0 W6 U5 n2 E5 ?1 q+ p; O
- write_reg(par,0x3A,0x05);
; h" f F% `" D0 h6 ` U
: i3 P5 B" J$ ]7 t/ E2 W- write_reg(par,0xB2,0x0C,0x0C,0x00,0x33,0x33); ~ u; x& @ [, a0 J# V; e, z1 Q
% `0 [3 ?3 H! b9 G+ x6 C- write_reg(par,0xB7,0x35);
: n, C+ s9 h- u% U6 v5 K7 b - 4 A0 U4 ~+ v/ u7 ?! z$ o* @% ~7 q
- write_reg(par,0xBB,0x19);
* O7 h9 U' e1 l6 U, X* @ - ( N/ |) K) n! b$ E& d: u
- write_reg(par,0xC0,0x2C);
/ f o- r; V n - ) _+ N. c3 E4 O1 P+ ?( K" T# o9 r" a
- write_reg(par,0xC2,0x01);
: b S$ G B1 c0 L* S* a9 f; | - 0 T5 P; N- D: j' _% e$ q6 b& s6 X2 Q
- write_reg(par,0xC3,0x12);4 x i! C( X3 Y% j; X, E
- 5 Q' T' w/ N2 A
- write_reg(par,0xC4,0x20);% j# b* I3 N0 \$ r9 i; V: w
4 h- l3 x; @+ Q) B; \1 w- write_reg(par,0xC6,0x0F);, D, u8 ^& P1 l) L1 X+ ]
+ A) f0 E9 J' \7 B5 r0 ?- write_reg(par,0xD0,0xA4,0xA1);
1 C9 T9 N1 O& q- e4 m" ~ - 8 O3 u' N3 O8 n! R: |
- write_reg(par,0xE0,0xD0,0x04,0x0D,0x11,0x13,0x2B,0x3F,0x54,0x4C,0x18,0x0D,0x0B,0x1F,0x23);3 C9 X7 i/ T6 j3 G3 ^# _
- 5 ]- W) c1 y- T+ m4 j2 `9 |
- write_reg(par,0xE1,0xD0,0x04,0x0C,0x11,0x13,0x2C,0x3F,0x44,0x51,0x2F,0x1F,0x1F,0x20,0x23);' M: q# X& ?# g, T) Z6 S0 n
- & m+ t# P5 G0 A/ [
- write_reg(par,0x21);
' [4 t0 e4 @) S - 3 s b3 [$ ^2 L* z `
- write_reg(par,0x11);7 q) H+ ?; m* G9 d# l6 a/ j
- + h+ z: z4 q! W, i- u
- mdelay(50);& K" y& g) T( w& g2 D# i
- $ g2 }/ P, h0 a& U9 K
- write_reg(par,0x29);0 b3 t* P; t2 e8 G/ i' y0 `
' t6 Q, @( a4 A' N2 S+ r6 l- mdelay(200);
: N+ H9 {* y1 b
- ^' C% j+ `" V- return 0;
7 y9 Q- _# w" h0 O: Q
; [9 m9 X7 M6 l c- q- }
复制代码
8 @* a1 T+ H1 M) }$ z' i初始化显示给修改了。 fbtft-core.c里面也需要修改。这个可以参考网上的教程。 之后在这个路径下把驱动使能。 我们还可以让其显示内核logo。不过我们这里就不修改了。直接用其自带的图片。 可以看到两个小企鹅,因为MP157是双核CPU。 之后启动。 我们可以把我们自己制作的QT解压到目录,然后用命令设置环境变量。之后就可以启动测试了。我们编译的里面包含例程。所以直接运行例程。 这样我们之前自己编译的也就成功了。 还可以用命令测试设备。 如fb-test fb-rect显示随机色块。
3 |& P2 ~2 ?: D5 o9 g! a1 A |