请选择 进入手机版 | 继续访问电脑版

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

【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)
    2 B9 O7 F" _8 K

  2. % Q+ r3 a! k  i4 P( \
  3. {
    ; v4 s- h/ \# ^5 A- B9 P
  4. 1 T5 h, R3 Q' A8 B! t
  5.     par->fbtftops.reset(par);: S  _6 d0 u1 n) a
  6. 0 K* L- j) N+ ]" H# a1 P$ k8 i$ q
  7.     mdelay(50);9 B9 y5 N% a+ e
  8. 9 |4 `0 R  }& G
  9.     write_reg(par,0x36,0x00);
    9 K& f9 t( m& Q

  10. ) [) K2 ^* [5 H6 s; X
  11.     write_reg(par,0x3A,0x05);
      I, C3 h/ j1 Z
  12. . K* X: _' A, o4 i" `8 F3 j
  13.     write_reg(par,0xB2,0x0C,0x0C,0x00,0x33,0x33);
    % A! N% v9 s  p2 n

  14. : g; J  m1 P# I* |4 N
  15.     write_reg(par,0xB7,0x35);1 O+ B3 ^% L( w  u1 L

  16. # G2 ]9 u* \0 i! V& {
  17.     write_reg(par,0xBB,0x19);
    - a5 \* E7 g# ^0 u
  18. . T9 r2 w8 O2 x" T. Y8 d" U
  19.     write_reg(par,0xC0,0x2C);
    2 x2 t8 m7 p0 h# J) f3 i

  20. ' C( V, \# Q4 e, O' T2 v2 s
  21.     write_reg(par,0xC2,0x01);1 }% f6 ?0 A+ i6 U" j
  22. + ~* E9 O2 p- ?
  23.     write_reg(par,0xC3,0x12);' x- j, M, w  u2 v5 l9 U
  24. - P& A' b) G; `* \# m" U9 l3 ]( {
  25.     write_reg(par,0xC4,0x20);( x6 [( u' J- s* `
  26. 7 ~( {& u6 V, F/ t  v) y/ {
  27.     write_reg(par,0xC6,0x0F);
    ! w1 b) o; L& I+ D/ f

  28. ! S; k$ z, S8 r& A1 _# [1 ?5 [0 S4 _
  29.     write_reg(par,0xD0,0xA4,0xA1);
    4 v. S( l. n2 a& b( Q7 g* c& M
  30. - E( m5 F$ J% H! \) {
  31.     write_reg(par,0xE0,0xD0,0x04,0x0D,0x11,0x13,0x2B,0x3F,0x54,0x4C,0x18,0x0D,0x0B,0x1F,0x23);: U8 U2 m+ H8 r9 ~6 @5 P& ?8 l  O

  32. ' q  c5 ?' b9 O- j# B
  33.     write_reg(par,0xE1,0xD0,0x04,0x0C,0x11,0x13,0x2C,0x3F,0x44,0x51,0x2F,0x1F,0x1F,0x20,0x23);
    ; R5 V7 X1 ^+ m( m% Q1 E7 R

  34. " Q* l1 p& F4 u$ N% j" P
  35.     write_reg(par,0x21);; {- m, F( u+ h; @# [9 T) z
  36. 9 {. p" r' ]7 n
  37.     write_reg(par,0x11);( g& Z3 Z$ Q; q) F" I
  38. . m$ k* A. Z0 R# A) R. T0 S3 c
  39.     mdelay(50);
    * g$ _1 R1 K1 @
  40. ; I# ]; w: Q0 `* Y8 v* H
  41.     write_reg(par,0x29);+ M/ ]+ f, @! q5 ~! W4 R

  42. : O% O" A# C' y* Z, f7 T
  43.     mdelay(200);
    % P( q- p& N+ Q0 \  D# P7 p

  44. 9 x$ c, i2 h  C) B  O4 b
  45. return 0;
    % B: A, a2 D) `  Z
  46. 6 j6 s* }3 |6 @- ]
  47. }
复制代码
( G; J6 a9 c; {4 V
初始化显示给修改了。
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

$ t  X8 `* F' n% v+ f0 b2 W
收藏 评论0 发布时间:2021-7-8 21:14

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版