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

STM32G431RBT6--LED模块入门

[复制链接]
STMCU小助手 发布时间:2023-3-3 15:00
一、利用STM32CUBEMX生成工程框架# q- G( Z' K7 O' r7 R) l& I* P# ^# z# W
1.选择MCU
3 X, o5 X2 E- h' [, r  Y/ s8 Z" k$ ^) ]1 B. z
e4a30991c3254615b2ef60c228eeab4c.png
& ^  w1 @) @) @0 L$ l( U# s1 L# _$ f
9b88653a54144840b1c4fa4781e94a0a.png
1 l/ f9 }. ~, E. e; }$ g$ l( w/ {8 I. F" o

9 i+ B! M2 x$ j2 B' v 2.配置时钟( ]9 a% W  m7 |6 O
1 E# A! D; u- j% c, _
f1d5505a8aa549b0a76ce04d494c5319.png
& K" k5 e7 g" u  }1 v

. H6 Y. z3 K! T2 r2 ~3 h 3.配置GPIO3 m# c: W2 h! i" Q
9 z1 ]" @, Q7 C
7542e23a70e54883ae1bfe680ed02e42.png , c. i% c# z3 f# U0 k4 b

2 ~' o/ z- \) K8 \# h4. 配置Project Manager
% L- E- Y. v. x; z' t) E4 r9 K3 X# p% h! f, ?7 U  S; g
dac2975316764ec0b34eb0d3e719ccda.png " A  G2 ?( I1 y  n1 t$ x7 @# R
- ]" Z  X* R* t% n8 I7 J
a46e2460aa9e4f8dbe354b33c83b1589.png 9 K; o2 W+ D" @" L4 r* G
! _/ e( U7 _# ~' x) s

) j, r; G9 J( q二、利用STM32CUBEMX生成初始化代码文件
" d8 e4 Z( w4 Z/ z0 w+ e6 \ 5.打开工程文件. F' M% C# z0 d4 E; d5 d+ M% W

- b! `$ _. _& k9 b
48f076bc9f4b427fb6d2f9acae554c13.png ( z1 U: X" d! J) ?+ X: v! D

& O  W+ w7 U- c- i* _
c207bb60e08d472387c7297d7843a3b9.png 9 S4 V3 \( o7 L/ i2 P- Q
+ w$ U8 z& i0 F
6.编译Keil代码--生成的框架是否有错误
+ o% T* X) a& _+ N5 R9 x) K) V
) U* Q& D0 b2 t; E# g6 h1 U' ~. |
802e07e1fa1f4f648875769c3cb64294.png
1 ?7 K! w. v! |  r3 i6 s
7 W3 P5 M+ O% v# M( H7.按模块添加代码
1 \. n! `" }6 _' \, T* \
( M; J3 C9 A2 \3 S1 e在gpio.c中添加代码& h1 `1 q3 C% e' ], a
$ w+ x1 R/ ~8 V6 ]
7c3c204564094cce91862ac3e8c67f5f.jpg
; b# v1 o1 }2 H2 X$ j+ g0 x/ f! Z) u2 n) C7 f
在gpio.h中声明函数
5 ^* _' J2 _2 R4 i; h; k( f) A$ s& A# @( u% H$ \: j% i. f" m- j
ddbecff5184847d5af4769d3a20c6efa.jpg
+ |5 I5 U7 }* @+ \+ g$ ]& z9 J2 H* H+ i; |
在main.c中调用函数
/ h0 z0 ?0 Q9 J* U' g2 _
  i5 Z# d% X* ]8 y4 Y/ A3 |
1f11ed23e02748a88a8e65886be644cb.jpg
! |' \9 k1 k$ t% I
5 s  r  B  U4 g6 Z3 ?7 ^1 P- ~0 @8.配置Options
* @( d* O. N; [! b/ N# v8 Z
' ~# p! r& a& L6 L
bc83f022618748e79772ef11b02b8bca.png
; w7 |3 m7 p% `  j+ c
% a9 Y2 x, w# T
ef19445adb3b4aab9efde3e1c7bd1b11.png % R& L+ r6 ^. Z% ?& \

( [3 {* ^& G9 K! k6 z
b057eee90400447bb2307b3b4070a886.png / @" r* X9 h: J) n: s) Z

" b2 J+ w( c- N  t& G3 O: A三、测试代码
) f. z5 F& c5 N( {9.下载运行
# n, K$ B. X1 R. k8 s
+ j: \# K2 b6 t
01a415b61e85414da7a87d95c236f602.png 5 p4 Y" s9 _. q" X8 @9 w9 _

! H/ y6 ^* W. g10.实验结果- D  U9 L/ _; [3 m
(1)LED_TEST函数的结果, X# r- m! v6 `4 f
9 G' b% @, L; x# b" Q
719df45204834f6eb36c49ec843e7c88.png
( n8 j8 P! p9 y: Q
7 ?( k/ C: ]. q& [& j (2)LED_Disp函数的结果0 I2 D3 c& ?) ?" [
首先解释一下这个函数的作用就是可以控制LD灯一个或几个同时亮,比如我传入的参数是0x44,转换为二进制即为0100 0100,1对应的灯就可以亮起来。 - A. _) o8 L" _  z$ R, E: |

8 v3 d3 w# |, m; n/ f$ F& e, t+ Z
5c0710f578674ac6a1a9729996e0436e.png / B. l2 S- S' L. Q* V
5 f" I/ l; ~9 `
四、函数学习
0 G6 ], ^  I0 W, _5 U, c想要学习哪个函数就直接右击去看函数定义即可。+ }% e2 D% \, T! E* {& {  w
; n- A* f& t$ C  @
dfe167843f55437cb483890951560d0c.png + @! F8 N8 I" Q8 R3 \( |) t8 o8 Z
: d9 @" _& l7 I# _% A& w9 Y
( i$ e2 u/ R! W& q
(1) void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)------翻转电平7 ]3 V( w  S4 g' [& M

7 K5 U) Y* ~$ n; v! G参数解释:- X8 C  m- R! ^4 s
GPIO_TypeDef *GPIOx:x从A-G, ^" ?( N# O5 I; z% T
GPIO_Pin:可选项如下- A5 G' l, D' G( ?9 R

9 V8 F3 T6 e: A
e2f6d4e92c8141b3bd0559560d74d7cd.png . U3 q. l/ w- w0 G' c
  h9 s4 o0 d  |5 U
例如:例:HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_8);翻转一次PC8的电平6 ^& h5 Q$ o3 V( N& v

, T. ]6 `, ~* g+ _ (2)void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)----写入
  G' x6 [* y$ L9 T
) k- A- ~2 F$ P: h参数解释:前两个参数解释同上7 n* s9 C5 c  k8 x
6 i( Y$ K) V& Y3 A/ Y
第三个参数:GPIO_PinState PinState取值如下:# e( j8 o& e9 d2 q4 X1 J* t0 {
5 l( m2 Y- ]! p0 V7 C- i' j. {
GPIO_PIN_RESET   低电平+ C2 l) N1 Y$ S2 U5 P
3 I3 H4 o' ^( b, Z" ?, `
GPIO_PIN_SET        高电平
# `; h4 G1 f( e2 F$ o# p7 ^' ?& G' E% j! W2 S

* v5 v, ?, }8 p; n3 }- N* i4 ?五、问题总结
, o" k/ ~, t+ ~+ O在用CubMax生成框架配置GPIO初始时为什么要把每个引脚设置成高电平呢?4 Q$ N9 k4 x- B! P% R+ y! P; W
6 P0 I* s0 N9 n4 v# E$ m
解释:8 }( g9 v9 h( m* g% ?. z% y& X

) H, _# P3 x; b) c7 f4 K2 x) n2 S
首先看一下LED灯的原理:
4 I) l# `, f4 m# P, k  ?4 A* e" E1 n0 {' m+ c
a4a131a9fd4e4ab2b257e91484a20fd8.png : }. J$ `2 b  z/ g" [

& Y6 F* T& X! t  P/ @LED:当阳极电平>阴极电平时,LED导通发光  n* C, {) Z  o; e
当PC8为高电平时灯才会亮,
2 {+ B8 K3 {* h. A* Z  T# |# q9 X当PC8为低电平时灯就不会亮/ F2 h% K' p& F+ L
1 Q  p( g) G( C0 |! N3 i
1910998b44f94b09a801c213fc1c14c9.png
+ y' M% G' C- j. F

, _6 `3 r  {- {- \' s" f 当PC8-PC15为低电平时,灯才会亮,因为初始时希望LD灯不亮,灯的亮灭有个573锁存器在控制
) O# g0 m$ o6 L+ ]7 v+ R+ ~6 T: ?3 f) e; k' |
68f707bb91d44e178538ade9d7484210.png 9 {4 I: e& m6 Y  C8 H% V. X$ m# G" h. d
$ I5 w2 `4 L) X1 d. @
97739f9315ea4faf895eff2305fb26de.png
" G8 C$ [3 x- l6 g, _7 ^. c1 W) L
因此初始的时候把PC8-PC15都置成高电平,灯才是熄灭的状态6 g8 n3 X' O- X$ q, M' v' o
————————————————
3 d, f9 g" z+ j! z7 P4 O( o  X& v版权声明:想要优秀点儿
' k0 E& u0 w. I7 c+ p" Y0 c/ I* G9 U
# u* {$ q+ q3 a* H  X
赞 收藏 评论0 发布时间:2023-3-3 15:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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