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

【经验分享】STM32CubeIDE自平衡小车教程2.GPIO引脚设置和LED灯点亮

[复制链接]
STMCU小助手 发布时间:2022-3-15 22:00
本小车使用的是亚博智能小车,使用的主芯片型号是STM32F103C8T6,在此我们首先需要做的是理清一下实现LED灯点亮的思路。
/ E4 _3 r  ~% z4 X$ B& \' r& x6 U5 |' D, `  U* @+ L5 |* \  R
点亮LED的思路如下:$ m# l8 ]% F, O7 N( n+ X5 u
1.准备工作:通过主板芯片的原理图,找到LED所对应的引脚,这是为了后续对LED进行GPIO设置。
# w. [! k! Y; N6 N; K# [) F8 ?- K' M1 x! g
2.建立工程项目并进行GPIO引脚设置。8 A, V3 @. c$ \/ I) |& ~) a
" j6 J: o" q" y9 Z) P; R
3.生成代码,编写添加使得LED灯点亮闪烁的代码。& g/ `9 g$ M+ P* J/ Z8 ~

5 d6 k& z1 l+ k4.编译代码并烧录进主板,实现LED灯点亮。0 N* X! A. O: l

# H8 Y6 J0 q0 o) |( J; @  m4 Q接下来我们就按照步骤一步一步实现来实现。) w. s) ?, w, i
3 c* T- u; F+ t( L
1.准备工作:通过主板芯片的原理图,找到LED所对应的引脚,这是为了后续对LED进行GPIO设置。) W# Y' T+ O' C, J: g4 H. X
8 ~/ J3 F/ n) g. Z
6OT%N48R3}9Z3LB%[5HCX5K.png
! \" D* Z! R7 r$ \. n( ]. B
( m2 S5 `: H- f# E7 P; A上图为主板芯片的原理图,LED在左下部分,咱们单独拿出来看:3 T9 z9 A4 O3 u3 T4 s

" J7 x5 n8 m$ d) \; L6 w  U G89KTTQJ%N1~OEKPRHP`Y.png
5 m' d$ }% P4 j
6 J6 E8 |5 ~. D) Z' c/ n可以看出LED所对应的引脚是PC13,后续设置GPIO的时候会用到。1 Y' a8 X; Q+ [( K7 u2 n" b& o, Z9 Y
; Q  N1 \! [8 z' \
2.建立工程项目。
7 i# i7 i5 r  n" J1 |* V具体步骤如下:: J2 Z/ s% L6 t$ t( Z& M$ x
2.1 打开STM32CubeIDE软件,新建一个工程项目。7 k# D/ C2 Z. P; P
7 {+ W% E4 j9 q3 b* e7 `
GDEP)Q7F`738%P$S2DEFKET.png
8 X" C5 `! s2 s+ a% V( o/ V1 X
  r. U+ i$ x6 p" [2.2 选择芯片。这里先输入STM32F103C8,选中芯片点击右下角NEXT.4 d% V. k6 B) R4 M# B4 z# Z1 k

* ~7 K; A' I9 c+ k% ]( D% I' v5 m' x T$D4~[NB[7P9YDM6TIEV$XE.png
# U5 D9 p0 A6 y8 l7 a% [9 Z* d6 M2 n4 ^4 X
2.3 给此次的工程文件命名。8 a" e% E. N9 k0 ~
( o* e: x- E( ?8 J0 ~) A
@FBGUKJ[T4I8WD$OZ@0BNMG.png
" q1 g) I1 ]* `1 m1 `0 t' c
5 q- C  d( j, P  f# n, w/ K; M2.4 在System Core中选择RCC进行设置,然后将High Speed Clock(HSE) 和 Low Speed Clock(LSE) 选择 Crystal/Ceramic Resonator 即选择晶振。
2 _/ J( z/ n9 K7 b% a# N: _) @0 t" w$ \) }4 c. c
$ZV211{48)FK})GFC7IL6I7.png
( b% Z) \: h6 W$ V2 _0 C
9 d2 u' V( ?5 @3 B3 D2.5 在左侧的System Core中选中SYS,然后将Debug选择Serial Wire。这里设置是把系统配置和模式设置成SWD接口,方便我们调用SWD调试工具。
& n: c0 Z4 V. s" b/ z/ Y$ X$ w- f; P# G- S. @" }: ]1 a8 m
G(OOPZLA}_W`D4OIA~TLD]3.png 3 {8 V6 q0 n8 Q

0 A6 e1 Q0 l! [/ M* S& ?2.6 接下来就需要设置LED对应的引脚了,左键单击PC13,将其配置成GPIO_Output, f# A; b4 t/ j" L- ~& r- R
) p7 g) @. \1 X3 K0 N
XK6E$MT9K$@K$IU628YAUSJ.png 4 @# n; l' d* a. x  r5 ~
  [, E- D2 o' H; p
2.7 选择左侧GPIO,在GPIO Mode and Configuration中对PC13引脚进行配置,GPIO output level 为默认输出电平,这里保存默认设置低电平就好;GPIO mode 表示GPIO引脚模式,这里保留默认设置;GPIO Pull-up/Pull-down保留默认设置;Maximum output speed 为最大输出速度,这里选择High,高速输出。User Label为用户标签,这里输入LED,方便我们后续在写代码的时候调用。
2 O6 n0 ~& ~( g1 z, U( m% I5 [0 w, s9 a4 A0 _0 m; R
V}YS6[G0EPVHMUJ2R}{`1BF.png 3 D) n4 c* X* r' r. s
. L6 k0 H, g( g8 s6 v1 s  G
2.8 选择Clock Configuration,进行时钟的配置,将HCLK(MHZ)改成72,然后按下回车键。( f0 `# X+ T0 m) P! f' G& S$ U' @4 l2 j

1 f& i5 ~! L9 X (PJC~7V0)CNRU[BXYPDDP6Q.png ( q6 Y0 Y, Y+ v1 n* l* h
. n# v' w4 _/ f6 J, c
2.9 至此设置完成,点击  生成代码。
: q1 E" R6 p( F/ a7 v3 _) `' S9 B6 _% [" u+ X9 ~
SCV_{F382]UNG9@L{N9JF.png
* K  d5 x$ ]" K  K" F+ y0 {. _/ w- D* C# A$ R4 n8 n
2.10 烧录进小车主板芯片,完成LED灯点亮。
4 o7 _0 w( Z$ {) T' K+ Z! e: p(烧录教程可参考:)
) ]- v( U" z1 M' m5 J% n
3 @4 N+ q! R8 a图中黄色灯为控制的LED灯1 I9 }6 W& u# H9 p% o0 I" I
1 \1 M" ]5 \% Z- N4 v3 [; W8 B* V
K_DY{%)6]$W`ZMZ{NPWR8LO.png ; [. V' F% o% t5 n: _

; |; @! `- @0 z+ i& U此时LED为常亮,如果想让LED灯实现闪烁。还需要在加入代码。1 c, b( }# ^' v0 Y& |$ `* n
2 [1 S" j' W! f3 n6 l
3. 实现LED灯闪烁步骤如下:
* @4 P, m0 Q7 m! X1 M; A   3.1 在Project Explorer-LED-Core-Src的路径下找到main.c文件,双击main.c文件,在main.c 文件中找到while()函数。
: n/ {$ X8 y' E4 T
% b! p- M* E! O( u( g2 B PEN$WY0JEY94S]A{6HNRNWP.png
  O1 o7 o% {$ D5 {7 U! z6 b8 u. r& n7 C/ E9 F& q+ g+ u# Y
加入以下代码:
5 z' y& h) r5 A
  1. HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);//翻转LED引脚的电平7 s0 \' H  g5 S6 a
  2. HAL_Delay(500);//延迟500ms,即0.5s
复制代码
" D1 ~! B$ l; y5 V; R5 _
PS:一定要注意代码一定要加在BEGIN WHILE和END WHILE中,这样代码才会运行。
3 E9 v; W* N" A8 z- q% b" @  |. d# Y8 E+ x& |+ |
JI}1(GC7IJ8~H[Y$GMUXHC4.png 4 ~# E4 o; G2 n7 w! Q  A
: U* M4 K6 c- m1 w, o$ f* k4 S2 l
3.2 点击编译,不报错即可进行烧录。7 A6 a6 I- i1 {0 c' G# f
  L+ Q( y0 H* F' J: W9 ~: `! K
A]N%IBBF}QN]P7IT[HUYIYC.png
; X& |$ i& \% c6 q' t, e% X
+ f9 u& ^9 Y% E) I3.3烧录完成后可以观察到LED灯以1s一次的频率进行闪烁,完成LED闪烁任务。
" o  }* V1 s/ `- [4 O8 a$ S, V
, e! |. c. {3 M0 R8 U9 d9 ~& uSTM32CubeIDE中LED闪烁教程0 s% N' [6 l2 Z
% ~. p6 ]/ y( B8 h5 }
, @5 |  U4 p7 I; f

( V) B. t, D4 R3 V" s/ ]( c( C
5 n6 A, Z; \) t2 Y1 O- W
赞 收藏 评论0 发布时间:2022-3-15 22:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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