你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32MP1板卡试用】+FB_TFT

[复制链接]
liuxingkeji 发布时间:2021-7-8 21:14
首先为啥移植这个,因为之前移植QT的时候是想着自己编译一个包放进去,但是没有成功因为缺少FB设备。恰巧我们开发板自己走的是GPU,所以没有传统的FB设备出现。这次借助spi_tft实现传统的FB设备。
1.png
2.png
首先就是修改我们的设备树,尝试多次后发现这个是可以使用的。
3.png
上面就是我们使用到的所有IO口。
4.jpg
板子大概是这样的,还有需要修改的地方,比如需要给sck和mosi两个管脚加上上拉电阻,这样方可通信成功。
其此我们是用应该叫ST7789VW。因为这个屏幕的分辨率是240*240的。内核驱动里面的是不一致的会导致不显示或者显示出问题。其次就是还需要修改驱动。
fb_st7789v.c
  1. static int init_display(struct fbtft_par *par)
    9 \* g/ K7 m2 o
  2. 7 L; B2 p( U9 G8 f, T- i
  3. {# G0 ]: d3 y& H" i$ `+ P& _
  4. ; j- r: G0 g, k* }. m
  5.     par->fbtftops.reset(par);' B- c5 P; [. k# ?# t

  6. ( b3 ~* O0 p0 p3 Y0 J( p
  7.     mdelay(50);+ @- o  N$ s0 _2 i! c. Q, j

  8. 3 l+ H& L3 C4 u# |! T
  9.     write_reg(par,0x36,0x00);9 H' ]' ^1 g+ K+ U( j
  10. . J% J* k0 t8 j
  11.     write_reg(par,0x3A,0x05);9 j) q  L2 F: h6 C. o' W

  12. ( H1 I, Q* Z  t3 |) v
  13.     write_reg(par,0xB2,0x0C,0x0C,0x00,0x33,0x33);
    , D0 \+ \+ l. W' Q! E* v

  14. % O4 @( V8 ^( n+ L: ~; r/ x
  15.     write_reg(par,0xB7,0x35);
    * _3 X' A7 h( `7 z/ f

  16.   e$ L) g* ?8 ~5 C* E, n
  17.     write_reg(par,0xBB,0x19);
    . G% {7 M# P: g, f% M
  18. ) ?7 _( v5 `, F& J: r- j. s
  19.     write_reg(par,0xC0,0x2C);
    - y  I" h1 x, B' Z9 ~

  20. ! N7 V2 D. @- I- z$ z
  21.     write_reg(par,0xC2,0x01);2 L4 b: Y* V, c" R9 k& b

  22. 5 e; g2 A9 N2 o$ Z) P4 t3 i
  23.     write_reg(par,0xC3,0x12);
    * \, D5 j/ U9 W: [% p1 S

  24. + H" Z1 k7 A+ u% }' _5 d' f
  25.     write_reg(par,0xC4,0x20);
      W% g( A5 t" S; c  Q: N
  26. $ p8 f/ V, u% M& n' k0 N
  27.     write_reg(par,0xC6,0x0F);
    / S% D" }7 `0 W( `! O( p
  28. . K+ j! S) M. S0 w* H9 u
  29.     write_reg(par,0xD0,0xA4,0xA1);! h3 d& I% R6 r$ `" B" J
  30. ' G9 i% A) M0 D
  31.     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

  32. 4 e6 Q7 T+ s9 I! M, b, V0 Y
  33.     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

  34. * t  x# n5 {; H$ n& x% I9 m
  35.     write_reg(par,0x21);9 Q' G0 r' Z  H- b$ W: M
  36. ' l: V" _) _" S! d& \# v' J0 g% f
  37.     write_reg(par,0x11);, \& K# X0 V$ |/ Q2 M9 e0 ]! C

  38. ( }4 B) ^+ l6 @$ O. M7 Y
  39.     mdelay(50);+ O/ }/ o' l% k" N2 e- i( T

  40. 3 q% R6 h! p* C% p/ r
  41.     write_reg(par,0x29);7 a$ k& W) X) R( x

  42. 8 [" A7 o* U, ?0 ?, m1 b
  43.     mdelay(200);
      ^' |; h8 u; Z% L5 m: b
  44. 5 \4 u% N, j; E4 I; ?
  45. return 0;& `" J0 k* Z6 @0 [% T8 y- b
  46. " u' }- h; c) }% g9 h
  47. }
复制代码
1 [- D4 d1 _0 `7 Z# p, s
初始化显示给修改了。
fbtft-core.c里面也需要修改。这个可以参考网上的教程。
5.png
之后在这个路径下把驱动使能。
6.png
我们还可以让其显示内核logo。不过我们这里就不修改了。直接用其自带的图片。
7.jpg
可以看到两个小企鹅,因为MP157是双核CPU。
之后启动。
8.png
我们可以把我们自己制作的QT解压到目录,然后用命令设置环境变量。之后就可以启动测试了。我们编译的里面包含例程。所以直接运行例程。
9.jpg
这样我们之前自己编译的也就成功了。
还可以用命令测试设备。
如fb-test
10.jpg
fb-rect显示随机色块。
11.jpg
$ l/ v5 V9 _2 @( }5 o) c" x4 Z
收藏 评论0 发布时间:2021-7-8 21:14

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版