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

【经验分享】STM32cubemx教程及STM32入门

[复制链接]
STMCU小助手 发布时间:2022-4-26 22:56
简介9 x& W* U; W# \- T
STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32 全系列芯片。9 Z' N* H# w* T, s9 Q* y

7 Q- F  O/ }( Y在CubeMX上,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IAR For ARM、TrueStudio等 省去了我们配置各种外设的时间。, K6 K0 x8 f$ V3 m! u% z2 s4 F

+ {/ k7 r) s0 Q& z补充:32的三种开发模式
/ a0 ~/ s! _7 \% q% x7 b1.stm32能基于寄存器开发,就是和51单片机一样,直接对寄存器进行编程。基于寄存器编写的代码简练、执行效率高。但由于 STM32 微控制器的片上外设和寄存器数量太多,这种编程方式移植性差,寄存器名称记起来也很痛苦。
# T# ~- u, g: Z7 A' A
3 x+ S/ F( j7 o. b6 `: E- b8 I2.基于st官方的固件库进行开发。现在大部分stm32教程教的都是这种库函数开发,如正点原子,野火等。他相比寄存器开发更加简单,我们不需要记住每个寄存器的地址和名称,只要会调用ST官方封装好的库函数进行编程就可以了。9 S" U5 l. ?# w
; E! |) T( k! J( i' o
3.基于STM32cubemx进行开发,就是我们今天要给大家介绍的内容。STM32cubemx使用的是st官方新推出的HAL库,然后我们可以通过软件内设计好的图形化界面进行配置,软件自动生成生成配置代码,然后我们再在IDE上面codding。# f3 K" V6 ~; D. w: o) f! U
7 I  V& N4 K9 H0 \& V
那么,如何编写一个基于HAL库的简单的STM32程序?(点亮一个LED)
# b4 X& w6 D% ]6 u( e7 \1 ]一.需要的软件! J( v9 a9 k5 R" S- K
STM32cubemx,keil5(或者其他支持cubemx插件的ide,如clion,vscode)
6 b2 U, B& x$ r' \) T; d( r. F8 Z7 y# L$ o! \
二.STM32CubeMX的界面配置

& x$ ^) A+ c% N9 P" M首先你需要下载32的软件包,步骤如图
* ?7 _" D6 O0 S$ }; d5 ]! k8 p3 E1 o5 V( d% y" ~2 D+ k) V+ R
90c181941533498d97fbcd408bfa6e44.jpg
4 _7 n% C" P8 u1 Q
, ]1 V: t; g  E' L然后搜索芯片型号,然后新建工程(这边以STM32F103C8T6为例)' e: _( V  ^3 {( [
$ S. m$ _# Z7 K. I- w9 ~! g
5b235758ef034bc48885efc6abc39aea.png & N1 M& ?0 s2 ^! k, d0 [  C

4 U2 |7 n5 g/ P' v然后会出现配置界面' {6 ?  n3 q' `- Y  u
: k% D0 b" x- W5 D! h0 E
84ed44d6e0af43b29fef296b0e7b9a2f.png 3 ~! ^0 O* q7 G/ f' N
" [$ K( B( l0 h/ J
左边是32的片上资源,右边是GPIO引脚的配置界面& x  d0 `5 [4 F/ ?
DMA控制器7 X& r* y9 ?2 i, P$ G1 ]4 v; ~8 h& `0 u
& Y7 d7 L7 f9 x- n9 Q
GPIO口

7 o# F/ S- ~& O2 ^) s# D$ g4 z+ h
- k" H  s( A4 s& e$ tGPIO的工作方式有4种输入模式:输入浮空,输入上拉,输入下拉,模拟输入+ r, N5 s. h1 G( l5 s
4种输出模式:开漏输出,开漏复用功能,推挽式输出,推挽式复用功能
) K# o% J$ W7 r/ P# Q  p5 t7 ]' f/ K2 Q% G% M
20200320104927470.png & E. U6 W7 z4 p1 \

, F6 I7 T2 g' N% |在STM32中选用IO模式:
  1. 上拉输入、下拉输入可以用来检测外部信号;例如,按键等;8 b: G' ^0 m: i* S' O- f
  2. 模拟输入 ——应用ADC模拟输入,或者低功耗下省电
    4 K* U5 ~5 s0 C+ U: n
  3. 开漏输出一般应用在I2C、SMBUS通讯等需要"线与"功能的总线电路中。. e; l4 J( }! R5 Z4 _* e# m# F
  4. 推挽输出模式一般应用在输出电平为0和3.3伏而且需要高速切换开关状态的场合。在STM32的应用中,除了必须用开漏模式的场合,我们都习惯使用推挽输出模式。4 H& }# e3 O, Y: j( e
  5. 复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)) k4 ?& Y# q; {3 s
  6. 复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)
复制代码
3 ?! u5 v1 L' f% P  Y# R
NVIC(嵌套向量中断控制器), r4 M; g8 c) n- A; T8 u8 W
进行中断优先级分组7 D$ c) F2 \8 C; M
5 A- l  ^3 f6 ~: q
RCC(时钟)
- \8 P  `( m1 f1 f( ]$ ?设置你的时钟源,32有五个时钟源
6 t2 n1 Y: p2 u: L( h9 n) k4 X5 m  t! Q( R) I8 t
IWDG(独立看门狗)WWDG(窗口看门狗), ?( a- [+ V  {! K. W
看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。$ e; H6 e$ E9 Y  u6 {5 \7 C
" m0 C% U3 ]# c
回到正题,点灯只需要用到RCC配置,GPIO配置' K( }9 c, E8 R6 M2 Y# O* c
将外部高速时钟(HSE)配置为Crystal/Ceramic Resonator(晶体/陶瓷谐振器),外部低速时钟(LSE)用不到,可以不配置/ `: o5 n  z3 T4 g7 @
, d$ |5 o9 m$ i) @5 Y2 T
8bd6cc79c58d497eb9ccf80ccc50e32d.png * s* l2 p. L$ h

- ?' j% H# A1 c  ]. o0 Z. W配置GPIO) ~4 t0 [5 j1 F" B& J
1 z: m" A1 `* P( w, y9 x- L
773c83fddd574c4f986c97525b9a6eca.png
2 \' q$ h' A9 @: n9 `/ M) x( h! M/ B" s: c* u- }
然后点击clock configuration配置时钟树。
' c. s* ^, ~3 }
2 L+ K( J! F$ m- H9 y; ~ 8593d13d1c8149cc8e738a9efc3a62bb.png
- E1 Q4 B: Y; |/ G% u, h! S$ P& Y; ~- c
26c4a0f55e8441e491280eeb1dc830b4.png
5 \) G3 Y9 ~% c& o! i4 W: q; a6 A1 Q& K' ~) P; y, V2 s
c61ca14de2534baaa17b4109e31d9a71.png
+ `0 K- D9 K. M$ R- H* A: A4 i/ s4 ~* F- ^/ T1 w9 [: ?
然后点击generate code,点击open project
5 G& `2 M" `7 S8 d8 G1 u% i
' q6 D3 J' C) Q$ M 2eaefab6617d4d768607fa2cd27401e3.png
1 W- T) w9 \4 t$ c8 L5 i
; c" i9 c$ C) w+ Q; s编译没有报错,可以用用串口将hex文件烧入单片机中,也可以直接使用JATG或SWD烧录9 F) {2 U' v% H3 V6 a
; _$ R4 O& W$ n2 _8 ~# ~4 W$ F, q5 @; R
补充:单片机的三种烧录模式ICP,IAP,ISP
, y  H2 j. {+ y) ]6 v  f# ^ICP:使用SWD接口进行烧录,如J-Link烧录器和J-Flash软件配合使用。4 K# ?/ @' z& ?
ISP:使用引导程序(Bootload)加上外围UART/USB等接口进行烧录。! l$ y' y* ]0 a  V1 J3 q( x+ U
IAP:软件自身实现在线电擦除和编程的方法,不使用任何工具。程序通常分成两块,分别为引导程序和应用程序。, ^) B2 M% u, I' D

* {6 M" Q/ J  Q" G' l. C$ s: v% r: z$ P9 p, H0 J
2 o$ U, w- X& R$ Y1 Y4 W0 I, N
收藏 评论0 发布时间:2022-4-26 22:56

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版