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

STM32G431RBTx基本模块 LED

[复制链接]
STMCU小助手 发布时间:2023-3-2 10:16
前言
, r; S7 R0 Y6 U4 [) |9 Z本人是准备参加蓝桥杯的一名普通大二学生,看到学长在CSDN上的写的备赛博客写的非常好,本人也想效仿他,第一次写博客写的不好请原谅。, [3 `" R. g, R5 e3 g, |7 V9 @

3 _/ U9 d8 g8 q- W. f一、软件准备. G& `% B% Q4 V6 T7 \. y
1、MDK4或者MDK5(可到官网或者其他途径获取,本人使用的是MDK5)
% j" I* u! ?, X; L2、Cubemx(可到官网自行下载)
* f4 g5 I1 l- q8 z3、安装G4的包(1.2.0,1.3.0以及1.4.0均可)
! d8 V& u  W% i* s& ?4、串口调试助手(COM)
& ?- v' R2 Z: A" o0 q

  R0 o2 k* A- l. u6 C9 `二、LED
" p9 a  w0 z* z  _$ b+ w
1.G431RETx的原理图以及我们需要配置的元素: r# u! C* d+ q5 V; i8 S) d8 |- Q
LED部分原理图:) I) H4 ^* Z7 l0 c

+ g3 r* ^. _% x5 `' x* u
a1b9b2ca7775496b97076575de0fffb8.png ! e+ x6 V+ n  w- O9 _0 e
0 r: S) P' s1 H  G

* p6 v% l, F/ S6 b: V$ X分析:: U! z0 w3 h' U
上图显示了LD1-8的所在引脚位置,我们知道如果要控制LD则要将LE(Load Enable)引脚用PD2拉高,拉高后LD1-8就受PC8-PC15的控制了(此处为低电平电量)
2 L5 ~# \/ W  e( u- o; U! W+ z2 Q
$ P4 u( x$ O0 G/ p" Q4 o

  _. W# f: i# B6 t" k8 l$ v2.CubeMx的配置步骤
* B5 }  ?. ?6 m4 s/ F注:若对Cubemx的配置方法不明白的,可以参看(这个是学长写的): B# b5 ?; [3 N; ^- [
RCC配置如下:
5 m, D# T2 B/ C' O2 c& n9 P$ q" ]% F4 F
21a8135fbff649adacb002b2d5516f9d.png
+ w. ]& Q" o1 `' c4 L4 v; C7 ?! w# }) I- @$ ]; {1 C
7f6be32a90974cf588778727cebcd8aa.png 5 d+ a8 l. Y/ u
& U; u1 k* U6 p. h" M. B
IO配置:
2 v8 ~4 \8 k+ |9 g" X5 `& F& YPD2,PC8-PC15设置为GPIO_Output输出模式,PD2设置为默认低电平、PC8-PC15默认高电平
, t/ W: K% j: {0 Z/ n. V
( @. g! d6 _# t2 P) Z4 [
6ea7685a701d4c889a57c352b8ffa49d.png , Y& `8 n) p3 g5 Q% m- P3 {

) [, @/ g- d* b, e  i
a148e023322f40bd8c4f18f826bdb428.png 5 i# ^0 i% r1 V$ t; g- W: j
% E" v5 L8 q" h% _6 [# Q' a
3.别忘了设置调试接口为SW% z9 _8 r7 d7 l0 F
$ [( Y* v9 j  K" O& R
c3f75f06e7154654ad6c5741fd8c7b0d.png ! O# `  O3 X4 G9 M' a! h3 t
9 q% B. w& S* k/ Z
4.生成工程; J- l: j5 c( x9 v" t( G
$ O( o6 H3 m3 [( n) O1 t4 f1 t
1b7c638391794285a59e00bc5a1381d2.png
! X4 ~& ^5 B) _7 u  q% E6 K1 p, O4 R% k, Y
f146859a0dbe4db0ae0868a74b7a617c.png " r5 n% f" y- i2 i8 c
5 b8 ^4 _4 a$ N
5.测试代码
3 D8 L5 V3 ]& z) R

' s. ^; h, I1 Y* D- c, o4 |0 s
b34fd0a46b144269a9bd7dc0bf5bfc88.png
  I$ o% e/ }) [5 A% `& m

4 }. @5 k5 s+ n5 \, N% o' G在工程文件夹中新建一个bsp文件夹存放自己写的板级支持包。, j" r* S+ Y$ V& g: O
8 `2 ~) h/ k( i* C/ u8 a# v
d3a86e3663a84fd79bb3b8c62776d279.png
. R6 q8 V) u0 b* ]% e
/ u: f4 Z/ K' Q( x( a
创建一个led.c和led.h文件
9 |% e6 }7 z2 Q" \5 f5 v7 H
% X7 n$ h! l- g8 E, \
e39d72df82d54bf1881ccc524a52be0d.png $ [2 x  C" d2 G$ `1 F* Z8 t
* R2 [+ Q% O* K" T) m1 _1 j% S
创建一个新组,并命名为bsp。$ X5 Y* k( L( F1 `

) n4 V% S5 S3 U( S9 J: A
9b790225d5f84f9faeb8425a1550e93c.png / Z/ e. a  W; D6 M* M, t
. v4 q2 R' \2 U! F& ~$ r1 J
再在bsp里面添加刚刚自己创建的两个文件
2 T4 I# g: P3 f5 ]. wled.c代码为:) S- G: p; r# F! n+ ?/ }
  1. #include "led.h"
    ( [, F- F9 _. K! y: G
  2. . j8 X& {$ @8 M) ?6 {. e1 G3 [5 c
  3. void LED_Disp(unsigned char dsLED)
    # A, G: r% ]0 Z4 ]1 c: C$ Z
  4. {. S% ]/ j4 m" x3 \/ ]
  5.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_All, GPIO_PIN_SET);( X, W* T6 t( Z. g( Y, e4 ~+ c
  6.         HAL_GPIO_WritePin(GPIOC, dsLED << 8, GPIO_PIN_RESET);: B: X" k8 e, W
  7.         HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);
    & v) {" U$ s! `) h( k1 E
  8.         HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);2 t1 X! C* K( V* {  Y
  9. }
    " ?7 r0 J: |0 o3 Q) B5 K
复制代码
* Q6 C' d5 ?# k6 ?4 J8 l# W0 \) j
led.h代码为:2 u9 H7 N4 C, d; f9 i) w' n. n
  1. #ifndef __LED_H__8 N" g, [1 _# E. [! ?; o9 x
  2. #define __LED_H__
    . {. v0 H: Q: m
  3. 5 t. C; t$ G. h5 j, H- D
  4. #include "main.h"
    / D3 Y/ ]6 ^" p8 W) g' Y
  5. 7 a' t; j1 c$ c3 I8 W* T- v, }
  6. void LED_Disp(unsigned char dsLED);
    * d3 B+ J) Q" j0 i% W' ^& m2 t

  7. # _) s+ Q4 o0 X" i4 t, T; g, K
  8. #endif0 {! I4 B8 N+ S  D0 J! K3 h+ s+ U

  9. - F& o5 Y6 P6 l/ `
复制代码

- l2 f/ F5 b" x3 G% i8 e; ~; pmain.c中main函数部分代码:4 E3 l0 ~- |; X9 o) M
  1. int main(void): z# J8 R' I( D8 s+ R' c4 ~8 j2 c
  2. {( j" {6 o4 j& q$ ^8 y  X
  3.   /* USER CODE BEGIN 1 */7 \7 w& D4 X. p
  4.         unsigned char i = 0;% h; K* ~4 [( f
  5.   /* USER CODE END 1 */- l" G6 E& Q9 E# l
  6. ! t1 k: g: O9 z7 R  S& k! |
  7.   /* MCU Configuration--------------------------------------------------------*/
    3 R3 O9 \* S! J* Z* A' j
  8. - F+ F$ t5 f; D/ N6 d
  9.   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
    % ~! ]* T2 `+ P7 l
  10.   HAL_Init();
    % M& ^. I/ y8 s+ D% k+ D3 I

  11. 9 [0 v! D( D1 M4 R
  12.   /* USER CODE BEGIN Init */
    ! l7 F8 Y  l# \$ H; T8 j7 Z
  13. 6 w; }+ I6 D2 u' K3 C& ?4 `
  14.   /* USER CODE END Init */+ ]7 J# y5 U/ }- n7 x, w: q

  15. & z8 z) o5 O- N/ s+ v% s% W4 T2 K
  16.   /* Configure the system clock */! u% Y3 H7 z/ e/ x  m* _
  17.   SystemClock_Config();
    / p& e, [, i. v7 p3 I: V# D9 Y

  18. + _; d; V8 N0 ^& U6 h) R7 v
  19.   /* USER CODE BEGIN SysInit */5 I4 X' H* Z; l% v
  20. * u' v4 ?8 z3 \5 a
  21.   /* USER CODE END SysInit */4 y8 ]: n0 r7 V9 H" Q8 z" R0 J( o
  22. # Q& O- j. q) P2 p+ K5 {3 F9 Y* g
  23.   /* Initialize all configured peripherals */
    $ F& [' B" O4 i1 B
  24.   MX_GPIO_Init();
    7 r( B" W+ T! R" E/ q
  25.   /* USER CODE BEGIN 2 */0 f: K' F9 X% J! S6 f0 V. F
  26.         LED_Disp(0x00); //LED全部熄灭4 ~( Q7 D7 I3 {. m8 z2 ?9 y
  27.   /* USER CODE END 2 */
    ! C, p: ~0 a1 X2 S: o# c

  28. 4 f* j) I3 g2 {, s5 X* F
  29.   /* Infinite loop */
    0 L) V; S' Q3 D5 ~3 w# N$ @! k
  30.   /* USER CODE BEGIN WHILE */
    " D  T0 H: I1 v9 g8 c( @9 n
  31.   while (1)( Q& s# @7 v0 `& o/ |' |2 @7 j
  32.   {
    ; A# p6 P; j6 ?/ [7 i
  33.     /* USER CODE END WHILE */" a2 p' d1 \% k. W1 o3 U5 F

  34. & u6 k8 X5 A; `& o  l& j0 W7 G
  35.     /* USER CODE BEGIN 3 */
    2 q) W& A. \, d. a
  36.                 LED_Disp(0x01 << i++);5 P) g, S0 O4 y$ y+ M) }& ~
  37.                 i %= 8;% a0 O2 S5 m1 N. y
  38.                 HAL_Delay(100);* }3 Q! g+ t' i1 c
  39.   }; F$ w. Z! J$ d; K1 j' J
  40.   /* USER CODE END 3 */. y4 |/ R. ~2 f2 o2 m
  41. }
    " A5 O. s6 O* o/ K6 u; h; |
复制代码
6 P# {1 P$ G/ x) }$ o+ b8 Y
别忘了设置引用文件的路径
& z, k; R2 n/ M8 r; e7 ^/ C- i7 ^$ b& Y
c518d0322b934614810ce27af00c84a1.png ( T9 r1 q6 g4 U- u. `% M: N# K

2 I* F0 A# ^4 @7 h6 G" J' f' e
3df911c77bf94c0fb035ea318f844ba5.png
5 v& @8 y; O/ h+ e) p
6 s: K5 G1 f/ M1 f  F, ]9 c三、效果展示9 t1 B' w2 w* C/ \

1 w& J& Z+ S9 y& W) b/ B 20cfebb5c4f540a7a871b9ffdaaf2798.gif : n. M7 O8 q" J9 K3 j2 g
————————————————( L6 N# `) w, Z+ g3 Y
版权声明:火花页.2 I" a9 i" M$ g2 ~: l" g

% n( a* \' p) \
赞 收藏 评论0 发布时间:2023-3-2 10:16

举报

0个回答

所属标签

相似技术帖

官网相关资源

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