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

【经验分享】STM32CubeMX教程-GPIO

[复制链接]
STMCU小助手 发布时间:2022-6-26 14:18
  • 设置GPIO引脚的输出功能,将对应引脚拉高或拉低输出
  • 初步认识STM32最新的HAL库的使用
  • 用代码实现控制GPIO引脚输出产生周期出1s 占空比为50%的PWM波
    ! h1 ?" c0 b5 C% S
示例详解
    做实验用到的STM32F103C8T6最小系统板,如下图所示。使用STM32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。

8 g8 U* K, Q2 a- @- x$ p
G}CUB`(SKY6]}W9YVTGRP}7.png

& N2 o& w9 v2 B3 z+ C4 h0 _
    最小系统板原理图:

3 [# `3 N1 S. k' u" t
[_3466S}I27NNKJ$}BL_7MY.png
: d- O+ z; w" }
新建并配置工程1 z( ?7 ?; F+ c8 l7 H
QGC1}}B]U(%$S~[]9Y%PQ(4.png

9 R1 [/ D$ o- L! {& h. x3 G; {
    在新弹出的界面中的搜索框中输入 “stm32f103c8” ,并双击右侧栏中列出的STM32F103C8
: _5 f0 s! g& T
Y`HM_D@~9JYWV3NJEOWZBIE.png

( J7 J' Z$ R6 D& a1 S) z( a2 u
    弹出如下图所示界面,至此工程创建完成。
    接下来配置工程。
_[SWN{7QN(HF22%)Z@OSRUX.png

: N/ }, L- Y* o! _' H1 ?
    配置系统伏仿真调试接口, 在System Core 目录下单击SYS选项,将其中的Debug选项选为Serial Wire, 此时PA13 PA14引脚会被占用。
    配置STM32 CUBEMX 工程。

" x! U& h: z, R* ]2 V6 T
0BF(XBN]ZIK_FS6P%TJYAE3.png
  e) A6 @* k) e5 C
    配置系统时钟源,在System Core 目录下单击RCC选项,将其中的High Speed Clock( HSE )选项选为Crystal/ceramic resona…, 此时PD0 PD1引脚会被占用,配置图如下。

3 T( I$ r1 j/ @, Y. ^
3QR8R23S04WC$ETN1H`OO{6.png
& |# M8 |( i! h6 C; H! F
     配置GPIO PA0引却为输出,在右侧图中单击PA0引脚 ,在出现的选项选框中选择GPIO_Output 选项,选完后在在System Core 目录下单击GPIO选项,在GPIO子项中单击列表中的PA0,可看查看到PA0的详细设置参数,也可以根据需要进行修改,在这里保持默认即可。

7 F% o* H/ ], P  m) d+ s" y6 ]# o! C
64C9~YG51IRK4K%M[`UN@L9.png
$ ?5 [  d7 x% p/ T
9G~89{7WYT3(IB`(H%WXC74.png
" M5 S; ]! ?4 P  o2 \
    配置系统时钟树,将工程界面切换到Clock Configureation 界面,完成如下配置。

( V/ i7 ]' j& _" a' n! q/ D8 g
`~ENF`GK[JR0$IO9996~%`P.png
# f& z" n" h% }( V' \
    配置代码生成,工程界面切换到Project Manager 界面,在界面左侧单击Project项,将其设置成如下图所示( 设置工程路径在E:\Stm32cubePrj目录,工程名为stm32_gpio, 开发环境为 MDK-ARM v5 )。

7 b7 V' d1 f+ d( w& g6 `% o/ b
R8L3M_J}`LLL{)DA%V1S`8H.png

- A, e/ u' @; j" D
    在界面左侧单击Code Generator项,将其设置成如下图所示。
    只拷贝所需文件到工程,为每个接口生成独立的初始化头文件和源文件,将所有未使用的引脚设为模拟输入。
% ~) I1 o+ k4 w& N4 G
D)P9BWWG0{HU)G_@4LWT7TX.png

2 G; K' K) w* X# i1 B
打开工程
+ C, v$ a; H+ O0 e
    生成代码,单击工程界面中”GENERATE TOOL” 开始生成代码,代码生成后弹出是否打开工程对话框,单击“Open Project”打开创建的工程。

5 c% L% C! b8 w# V, z( E2 P
(5_[R63PSPE{XUWJ]H)YB`I.png
& [" M( Y9 G6 K1 c2 S1 i5 ~$ n

/ j# E2 O6 N; s& y4 K* _) n
    在代码工程(MDK/keil)中的 main.c 中 man函数中如下红框中代码:
" K& [3 ~1 t: s1 f; G
%LQY4Y2%S(XLACR(VL53M9Y.png

* k, k) K1 S4 ]! g# X$ ~9 z% K7 x
编译工程1 W4 V# p8 X2 L
DYE(NEDW2NQL_TAG)H2G.png
2 h6 G9 z( W: p8 Q% ~$ `5 }% ]
    烧录代码,在代码工程中单击“Options for Target” 图标,在弹出的窗口中选中“Debug”页,选择相应的烧录工具,本示例所用是jlink工具。
    单击右侧“Setting”按钮,将Port 设为“SW”, 最大速度建议不要超过5M。
    如果仿真调式工具接线过长,可以将最大速度设为100K,这样可以保证烧录成功。
! T/ ?- m% ~7 R" E) }. X

1 B% K. P9 }: z6 E
C73U5$L@RQB2S`EZ0BOMNQH.png
- P+ ~& R8 ~: M% E& }- p
    选“flash Download”页,勾选“Reset and Run”,并确保其它内容如下图所示。
& l7 m3 a) V1 @$ M& |
KK_N1)IZ$B28CHQJSWP0U.png
$ s1 \: Q1 m& p3 N' ^1 O4 x
    设置完上述设置后,便可进行下载操作,将调试仿真工具中的与最小系统板连接好,在工程中点Download 按钮,或按F8快捷键进入下载,下载完成后会出现如下图所示提示信息。
( R- v) t& f: Y/ u$ n7 ~- ?
微信图片_20220626141258.png
- W; E- g  n4 j& I* g6 X" r
    操作GPIO引脚实现周期1S占空为50%的PWM实验完成。
    用示波器逻辑分析工具在PA0引脚可以看到如下图所示波形输出!!- u$ r; \$ w5 f6 Y! F+ M

, ^# j3 |" K- x1 a
微信图片_20220626141254.png

5 J. V& W. M% }) U  N
赞 收藏 评论0 发布时间:2022-6-26 14:18

举报

0个回答

所属标签

相似技术帖

官网相关资源

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