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

STM32G431RBTx 基本模块 LCD

[复制链接]
STMCU小助手 发布时间:2023-3-1 23:32
前言
3 k! G2 f8 `5 ]9 H% I6 [本篇文章将在LED的工程基础上,通过移植大赛提供的LCD支持包点亮屏幕。0 ?+ y! N; O- J1 ~
4 v0 ^/ F1 a4 j+ V6 l4 ^+ G% T* e. V

! O& t1 o" t! V9 a2 q& qLCD
1 ?$ \) s& {( |" `  n' q1.原理图以及配置元素
$ P7 w9 ]1 y1 b( P5 X) ]
4 B( F, K2 c- G0 m3 H. K- t( E+ P& R
f9f27bc1c9ce4cd3936f1da7270807a0.png , J9 U' O" B0 a, U& h# m5 ~( P5 @

( K# H" @/ |, v8 o# I分析:7 d* {# T. Z3 f+ e6 G+ C
从原理图上看LCD占用的IO口有PB5,8,9,PA8,PC0-15。
  }" a. U+ o& U
1 m  P: w/ H  {9 W8 z
/ J9 L# x7 p5 n5 E, M# C4 z
2.CubeMx的配置步骤

7 ?" U! Z: h0 q4 B1 U/ g+ `PS:大赛的支持包内置了IO口的配置过程,运用LCD时可以不用专门配置。
+ }: v7 D) Q; C7 K
8 W: {, `/ P  A- W% I2 m
06624451d6134e1d9713f9dc7abf7073.png - }0 D$ |; B/ [3 w# `& _

# y- x- G4 F$ [0 p. g& o$ H" i1 j1 `在这里只需要将PB5,8,9,PA8,PC0-15设置为GPIO_Output即可,就不需要再进行其他配置了。$ X5 e, }/ _- a  Y' @
. m4 i$ O. ?" r) o
, V/ {, n, K" M* D& M; h# `" O5 m
3.移植LCD支持包2 p* ~/ k( E. t( ?& r
' e$ {0 T! d5 d) y! [$ U
0cdeb6f9ec0c4e049ff9f021ae20cdc4.png 1 T; r( B& ]1 F- _( w
4 Q! K5 e8 z3 D4 z, k0 k; f3 y
8d9196f4acd744dc847917822fdba012.png   A. @: N8 Q9 Y2 Q/ w& t+ B6 Y# b

/ r  ^; N0 W" T, V& b( L; ^) o
ea481dc589d94c538535ba58d91f74c6.png * y, p5 h: q) O! n6 x
5 `- d# ~8 R) l
88a91dd0e20a4d0d9132f7aea7234fd4.png
& A8 [) G5 M% ~% Y( o
$ ?" q8 s0 s6 o! f- a
c36a2a20554b4f39b0d4cee5accc6e2c.png
$ M& Y; l) A/ J- U$ Z0 J# D9 g同样的,把Src中的lcd.c文件复制粘贴到bsp文件夹中。6 c1 O: Y; R6 P  P: _' M1 v. b; x) g

) H% o, q. G9 R& s
c5e91931f6d04b62a233e2fffd756f35.png
& F! y+ D% ^. J; e9 I$ _+ s! ]- D# ]9 X2 s; C
d82f783b4f7548bbb0bf9c6fdb5ecdb9.png
% r* w3 N7 v4 {! U
. L3 c; Y* A% F3 d
0 k7 d: ?9 X/ k  `2 A
三个文件添加到bsp组中。, @* r+ z% w2 j, S! U
到此LCD的工程我们就建立完毕了。
: }. L1 Q7 {& Y2 C8 S+ C/ N% b0 E9 t7 @) _7 {# ~- k( e1 \- I5 F

3 P* Q; ^% X. b( @2 p: T) v4.测试代码+ |  F$ J5 J+ h& w; B6 g: u9 r* A
main.c中的main函数部分代码为:
/ T4 t% c$ h/ ~) M2 R
  1. int main(void)* M2 r9 p* \1 N  d; Q4 ]1 r
  2. {  T" a  I4 `" x# g5 `8 T
  3.   /* USER CODE BEGIN 1 */
    , U: s8 |" ]" t& p% ~1 }7 D7 x

  4. 9 ?5 E0 `* C; k* B
  5.   /* USER CODE END 1 */9 y# R$ \$ c( p) [
  6. 7 J5 a+ y$ S* o- q
  7.   /* MCU Configuration--------------------------------------------------------*/
    7 c. E  Q( U" F. ~* Y" c% q

  8. $ M3 J) V3 _1 L. `5 o  w& ^' n
  9.   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */4 j: y1 x, U, E- g& s  V
  10.   HAL_Init();  s! s. z7 |1 P. C. A
  11. 1 p0 _- |) s. [# w1 _* X! G
  12.   /* USER CODE BEGIN Init */1 U! R5 T% d- S) H  G- V
  13. ( N. b& Q6 r0 S/ p/ F* W
  14.   /* USER CODE END Init */
      J0 \7 O6 L( M" I- [# T2 w
  15. # {$ h  m5 q; i& y
  16.   /* Configure the system clock */! M! c! `) D2 B
  17.   SystemClock_Config();
    . M) e) V$ d& B% f, I% u. d  O

  18. 0 E2 n, s" a3 Y& s
  19.   /* USER CODE BEGIN SysInit */
    6 \: r9 Z" a! U' p$ o9 |3 z! }
  20. + }7 E$ U4 `5 W/ n# i+ Z( T1 ^
  21.   /* USER CODE END SysInit */
    / c% E: J! B& ~) {7 f3 J( E2 ?
  22. $ J0 m: g' }. q- y, w. a( l2 S
  23.   /* Initialize all configured peripherals */
    8 Y$ v; O4 ~) M) O0 q; ]( I( u
  24.   MX_GPIO_Init();
    2 b# t- |2 H2 Y/ Y) G' _: t
  25.   /* USER CODE BEGIN 2 */! w* v) t1 v( J. O9 f% D3 E; P' F
  26.         LCD_Init();
    ! [6 q; x% F7 N9 r5 T* K7 ?
  27.   /* USER CODE END 2 */# g  G& W  U7 l
  28. ! A2 S' k9 b$ C
  29.   /* Infinite loop */
    3 M4 A* q' _5 }
  30.   /* USER CODE BEGIN WHILE */+ C) }, x5 I- n
  31.         LCD_Clear(Blue);        //清屏并将背景设为蓝色" {% j9 R2 c7 K. T- A' S) ]& H
  32.         LCD_SetBackColor(Blue); //设置字体背景颜色为蓝色
    % f$ _4 v3 J  K* j; E7 `
  33.         LCD_SetTextColor(White); //设置字体文本颜色为白色* p, s* P2 K8 n
  34.         * \/ a! q/ P. |, ^! C/ |: U/ Z
  35.         LCD_DisplayStringLine(Line0, (uint8_t *)"                    ");
    % W) f5 ]7 ]: F, M+ ]8 K
  36.         LCD_DisplayStringLine(Line1, (uint8_t *)"                    ");
    + @/ A' A! Q9 D" k3 Y
  37.         LCD_DisplayStringLine(Line2, (uint8_t *)"      LCD Test      ");
    1 R- c1 K* D* e/ T* l. [9 X8 [
  38.         LCD_DisplayStringLine(Line3, (uint8_t *)"                    ");2 B/ ^. w, ~+ m( j' Z. P" L
  39.         LCD_DisplayStringLine(Line4, (uint8_t *)"                    ");
    0 I, W+ o. A: O. y  W
  40.         
    3 k; |+ v% q# l
  41.         LCD_SetBackColor(White); //设置字体背景颜色为白色# n8 K) Y. R8 m% e) H
  42.         LCD_SetTextColor(Blue); //设置字体背景颜色为蓝色
    8 H' X$ r& P( i9 z& Y% A

  43. / f+ J2 @; l. ~1 e+ T' O! R
  44.         LCD_DisplayStringLine(Line5, (uint8_t *)"                    ");3 o* \8 s6 S: ?3 a
  45.         LCD_DisplayStringLine(Line6, (uint8_t *)"       HAL LIB      ");& V' K5 Y8 J4 v5 b- y8 @$ y
  46.         LCD_DisplayStringLine(Line7, (uint8_t *)"                    ");# X6 e+ d" V  t. L
  47.         LCD_DisplayStringLine(Line8, (uint8_t *)"         @80        ");: _" [+ G; @# I. k5 p+ d7 M
  48.         LCD_DisplayStringLine(Line9, (uint8_t *)"                    "); //一共九行,空格为背景颜色
    : G! B0 F3 Q/ C7 N$ v6 U
  49.   while (1): D0 |7 i  {! B
  50.   {% P4 D: Q4 \, g  Z
  51.     /* USER CODE END WHILE */: P& |. `% I% n, z
  52. 7 M6 a6 O6 D8 s7 t% F. {' N' L  x
  53.     /* USER CODE BEGIN 3 */; v! @% L# a3 V4 E8 u; \, A
  54.   }
    # U: i/ H$ k& e; X# {, c
  55.   /* USER CODE END 3 */* A6 }+ o  c7 T
  56. }
    8 f( a5 Y9 m' p3 \) [5 S/ |
复制代码
- ^  S, V5 t1 t# j+ V" N$ Q, ~
5.效果显示7 b* ]8 P# q# @4 C8 D1 \' q9 S8 R
2 h4 C+ V2 F+ f9 |1 @* e. ]% _
8fe6ac5c85e740bf871e7e9f0a79e16d.jpg 1 T- C8 Q; L8 p  L

( ?- l6 j4 l5 s- j( Z9 {

* }! _% Z  Z; }5 Z. o总结以及我的发现
6 Z# L9 o/ j3 X  B5 C% ]1.总结- C9 P' O: C) u3 N! l
以上就是LED的配置以及测试代码。" q% i% X) G* l5 i& N% I6 |
本博客参考学长之前备赛博客中的LCD部分(主要是参考结构): X" u- l5 S: a- _, m2 V

7 ~1 L+ Z" M4 ]/ _0 G  F% n6 @2.我的发现
% I  n/ X% ?, z; J# b在b站冲浪的时候发现一个用嵌入式板子实现上位机投屏的项目蓝桥杯比赛结束,用参赛设备践行有屏就有BadApple,把它的源码拷下来后我自己试了一下,完成了如下的效果:
" ?$ H- J4 C! Q; c- @* j6 o
1 B# w; ~( l2 `/ f& T 33548645998349d4ad96b9baaaead21c.gif ; a& W6 G8 b( n; t+ H

# H/ N! k  n5 u+ v' W/ H  _6 T————————————————
; O/ e, |6 n' E# c2 ?1 @版权声明:火花页.) K' S# z, r6 E+ Y9 X
% [5 Y! p, M& b2 s; j4 \
9 p; w5 k7 Z, J" z8 P
赞 收藏 评论0 发布时间:2023-3-1 23:32

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版