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

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

[复制链接]
STMCU小助手 发布时间:2022-4-26 22:56
简介1 E/ Y) o7 E# K! i
STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32 全系列芯片。+ o) L( G/ K7 M3 H
; |# M. s* [- B) `
在CubeMX上,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IAR For ARM、TrueStudio等 省去了我们配置各种外设的时间。+ K; v, K) p6 C, x9 M1 b* f
9 {- q7 r. E7 o
补充:32的三种开发模式
8 O6 i# Z; d* k8 }* |' ~1.stm32能基于寄存器开发,就是和51单片机一样,直接对寄存器进行编程。基于寄存器编写的代码简练、执行效率高。但由于 STM32 微控制器的片上外设和寄存器数量太多,这种编程方式移植性差,寄存器名称记起来也很痛苦。
  Q) ~2 N8 \7 U! E( Q9 |. M9 c5 v5 m. h3 [& [
2.基于st官方的固件库进行开发。现在大部分stm32教程教的都是这种库函数开发,如正点原子,野火等。他相比寄存器开发更加简单,我们不需要记住每个寄存器的地址和名称,只要会调用ST官方封装好的库函数进行编程就可以了。
3 ~# D) k! d1 P& b* P* D" p
) T( F! A- `: b; H6 a3.基于STM32cubemx进行开发,就是我们今天要给大家介绍的内容。STM32cubemx使用的是st官方新推出的HAL库,然后我们可以通过软件内设计好的图形化界面进行配置,软件自动生成生成配置代码,然后我们再在IDE上面codding。5 {) ]2 W! g1 ]2 l! T
2 l0 m) P$ a& o( l, z( v% h
那么,如何编写一个基于HAL库的简单的STM32程序?(点亮一个LED)4 k& d1 U1 v+ V
一.需要的软件9 Q- s1 b$ x3 t+ Y: s6 l
STM32cubemx,keil5(或者其他支持cubemx插件的ide,如clion,vscode)# @1 \3 K6 N' j

: B) E8 G9 ?! v6 q二.STM32CubeMX的界面配置
4 p$ E1 N: e( _; ^8 V8 E+ ~4 U9 A
首先你需要下载32的软件包,步骤如图# ^5 m' V6 ~% R( s
! S: w2 p5 _) w. g& [
90c181941533498d97fbcd408bfa6e44.jpg + X# H! ]" W! ^/ W  m

6 e- s+ A' t6 W7 M9 h然后搜索芯片型号,然后新建工程(这边以STM32F103C8T6为例)
. e" U) S9 U' |) E" c+ ]% Z
0 f1 s+ C6 I5 N4 y6 g- S, s8 c 5b235758ef034bc48885efc6abc39aea.png / }  b4 f0 W* c9 a
6 F( a, o$ h1 j
然后会出现配置界面
: ~" y/ _2 C" d& x" k: {( y/ ?# y& b6 a+ Z, l
84ed44d6e0af43b29fef296b0e7b9a2f.png
  ]1 D5 H' S2 `
$ _" e* w' h7 q/ l: W左边是32的片上资源,右边是GPIO引脚的配置界面& S2 A$ Y) c" m7 h2 f
DMA控制器! X: H. h0 Y- O! z: q7 U% h

- p) K8 i3 w3 G: d4 c# @) b7 g6 Y* t8 D, c2 GGPIO口

* k& T9 J- y) g6 R
3 ~+ U& E- j0 p. G' X& i$ Z4 tGPIO的工作方式有4种输入模式:输入浮空,输入上拉,输入下拉,模拟输入
( D# b! ?. h3 V7 y4种输出模式:开漏输出,开漏复用功能,推挽式输出,推挽式复用功能
' z5 A1 J+ N& p! [+ `" I8 ?1 X6 S/ U0 Q! f
20200320104927470.png   ?" i* ]3 {6 L; t
% X+ L& i8 A( }! v
在STM32中选用IO模式:
  1. 上拉输入、下拉输入可以用来检测外部信号;例如,按键等;' y  |7 ?2 X4 A" G1 h( g
  2. 模拟输入 ——应用ADC模拟输入,或者低功耗下省电4 [" y6 z" T) R+ i0 m9 P
  3. 开漏输出一般应用在I2C、SMBUS通讯等需要"线与"功能的总线电路中。
    & d5 |- B3 B  G% E5 T1 K; k# r
  4. 推挽输出模式一般应用在输出电平为0和3.3伏而且需要高速切换开关状态的场合。在STM32的应用中,除了必须用开漏模式的场合,我们都习惯使用推挽输出模式。' z" W. B. [) X1 Z4 k! r- ]
  5. 复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)0 t4 [! Q2 w9 E7 o: @; P
  6. 复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)
复制代码

; x" v& e1 K+ [: s. t# XNVIC(嵌套向量中断控制器)
% I% U1 i7 M4 j0 Q7 Q6 M# C* u: z5 M进行中断优先级分组# c5 D- T# Y5 a  ]8 [6 `/ c/ N3 k

5 z1 I, ]) C- RRCC(时钟)
  b2 g+ s) n! t6 [设置你的时钟源,32有五个时钟源
5 C% J1 a! O( D- {1 t; U' n/ X# M! o1 T0 p9 b3 u# k( V
IWDG(独立看门狗)WWDG(窗口看门狗)
/ T9 V8 U& m8 m3 m看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
7 m! N, `. t, U8 }% ~4 q
0 j/ S9 f8 g% u* b* l# z回到正题,点灯只需要用到RCC配置,GPIO配置
: a9 U5 A1 [, k  H将外部高速时钟(HSE)配置为Crystal/Ceramic Resonator(晶体/陶瓷谐振器),外部低速时钟(LSE)用不到,可以不配置0 h- `/ |, P; L1 a3 P1 y$ P

: P7 ]6 P( u2 c+ X" J) E0 i3 H 8bd6cc79c58d497eb9ccf80ccc50e32d.png ! L/ p- L# i& w+ o/ s( e) T
5 o3 p" {5 g: a/ Z# ~
配置GPIO
  j3 ^/ e+ ]: w; y0 g. k  y* x+ o( b+ b! y
773c83fddd574c4f986c97525b9a6eca.png : h: v9 p) l' i( l0 m0 Y5 Y7 [2 r
3 e7 ~  X' A# g7 f2 M
然后点击clock configuration配置时钟树。, V: w. c! Q* w
2 P/ k+ b1 b3 u: d2 J: o2 S
8593d13d1c8149cc8e738a9efc3a62bb.png 3 i: Y: o3 x$ h  O# [  N
; x6 ]1 O" I$ [- _4 r
26c4a0f55e8441e491280eeb1dc830b4.png : a- O/ f, m! V1 i. ^; r
0 p, B$ B7 E1 ^: K
c61ca14de2534baaa17b4109e31d9a71.png 7 R. k( M# p! f3 }* ?
1 p9 M0 h$ e, |" i( Q+ _
然后点击generate code,点击open project
3 V, j4 K0 k6 w! T& v8 r# k5 H" v  M" d' _$ f: O8 o/ }- D9 y$ o1 W& z
2eaefab6617d4d768607fa2cd27401e3.png 7 h1 H, U1 L0 s' S1 P: H
  ~* w$ [. f1 R: l
编译没有报错,可以用用串口将hex文件烧入单片机中,也可以直接使用JATG或SWD烧录
+ h+ P% a" I; R6 [
+ Y) }/ S! J9 ~# V8 ]补充:单片机的三种烧录模式ICP,IAP,ISP7 M: d$ c# p$ h8 a
ICP:使用SWD接口进行烧录,如J-Link烧录器和J-Flash软件配合使用。
+ b( f. X$ s+ r5 ^ISP:使用引导程序(Bootload)加上外围UART/USB等接口进行烧录。
0 n6 l* O% _1 K) l" U" r& AIAP:软件自身实现在线电擦除和编程的方法,不使用任何工具。程序通常分成两块,分别为引导程序和应用程序。
7 o, b: _( ^( U! [8 s
5 Z/ o+ _; ~: \( D7 P$ G( O  e; ~5 l; e0 a% ]6 K- v& p
# L) [6 {  `& I5 B; l, B5 T
赞 收藏 评论0 发布时间:2022-4-26 22:56

举报

0个回答

所属标签

相似技术帖

官网相关资源

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