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

STM32Cube下载与使用(二)

[复制链接]
STMCU小助手 发布时间:2022-12-24 17:40
STM32 HAL库所在的层次
/ q: \9 F) I5 O8 ?; ySTM32的HAL库所处的位置
9 o' Y( \9 o0 V; S8 N  [) u$ W( f) A0 W  a( z9 V$ O
0deb4fb208944b8697436a7c2e88a880.png 4 o" X, g; C" I6 N( h7 q
! t- t& @, z, n) A7 I$ d7 @
标准库与HAL库所处的位置
5 f* t( y5 z+ h$ f2 k4 _$ d( E1 b. a
8dc5989670d84feabcfb0ba42f6a332d.png % o2 [, Z8 b0 m( x: m2 E) l

4 {- o4 T" g8 O( Y) f6 b对于STM32而言,可以分为3层,即:) c, r! Y. ^9 k& a; O
MCU层. l) i% _1 Y/ N+ V& v. a4 Z6 v9 q
CMSIS层
- ^; m9 |4 T/ t1 W$ n+ ~# t2 f用户层, P2 y2 s- [: v  {
用户层的代码就是我们的具体应用程序
+ I; W) j/ J( G' n* C2 L" J
: o' f% _8 w( Q- \CMSIS层是ARM公司提供的一些利用内核的通用特性来编写的一些接口
+ I/ j: y+ R) I1 ^; N4 }( G% T: E3 L& G9 c  ?4 a; g. \% m  r8 B7 ?
比如CMSIS DSP库,CMSIS实时系统API以及内核外设函数等,这些是内核通用的,放在了CMSIS层
- i& h" h+ v- k2 z% g, S
0 n# j% K- \  k5 a0 v* iHAL库属于CMSIS中的设备外设函数层4 s& O; `. s  q8 p, R7 P

# E1 W- e8 J! ^) [
32d7694e18e1488eb8c53433a55e536e.png
& \0 P. \% w* ^5 D5 ~! J& r' o* k8 ^8 |+ e6 V* }
STM32CUBEMAX固件包2 P4 Z# k  f( a$ _& Q
STM32CUBEMAX固件包中的文件包括:
" p; c: k% R7 F9 X8 r- QDocumentation文件夹
0 b* n5 a% T3 O' R% P) U* t  V3 T
& e9 D* ^1 A' ~" G
说明文档,如何使用HAL库固件. D! t4 L+ D3 e/ g+ ]
Drivers文件夹
  W$ |# ^7 A" Y  K. t9 S
6 C$ \5 N. w) u! P8 g7 V' {
包含BSP\CMSIS\HAL Driver这三个文件夹。其中:' u+ T6 o4 ?2 R! y6 @* }
8 W; ^. i- P! Z8 ^3 P5 a
1. BSP为官方开发板的支持库包
5 h$ l# X5 n8 O# G: n/ ]7 K3 q7 P

7 q) X) N, F: J1 v. q2. CMSIS为前面讲述的 CMSIS标准除外设驱动外的各种接口库7 E* K: b2 w" R( S4 \  N1 s' s
$ [2 ?$ x) `8 n
3. HAL Driver就是HAL库驱动包了
5 }" ^$ s0 B0 T# Z/ XMiddlewares文件夹. J! g6 o8 \9 `) T9 h9 e
4 U! x, d, k( C; y( d% b
中间件,提供一些对硬件的服务3 n, u/ z# p/ h

! W& S) B- Q; F其中ST文件夹下为ST官方的中间件,包含emWIN图形界面库和USB主从机接口库! ~) K+ {# G! g' H  o% }
  x8 x. h0 E# B2 ]+ b3 j
Third_Party为第三方的中间件,如FatFs)文件系统、FreeRTOS实时系统、LwIP网络协议栈
" X$ p* @/ n+ W0 vProjects文件夹/ c+ i4 U: T/ i8 M3 u1 v$ M

7 B4 x& m% Y* D
官方开发板的各种工程实例,包含各种外设如何使用,以及外设与中间件的耦合
$ @# }; b; c7 ^3 C2 g
( T- k$ j. W2 e3 H: u9 z
非常有参考价值
1 Q6 A. g" b6 l7 }0 @6 [2 k6 `0 Z9 hUtilities文件夹. J* T: u% D5 h! D+ Y- |  ~  q0 |# r
) I$ v/ s5 t! x! W2 H8 q* l0 x

8 O0 T" p% H! [% ]: ]1 ~通用的一些文件,比如官方实例中用到的一些音频、视频、字库资料
3 z% G2 u* T1 U. }5 N& }+ F" [6 M0 l" i0 G! ^: S! L& ?7 |
不重要1 P5 P7 C* r! ~5 E  S! A! o

- \; B" A" `1 H. s7 i# N# xKeil配置时的注意点

* Y. W+ ~. y* H* i0 P; w# b3 ^1. 选择C99模式% Y9 Y9 @  S) `5 E: A0 Y: @+ l% k

, m8 ~  h+ X8 O2 ]' g1 e* Z. n2. 勾选使用MicroLib
& }3 r( k5 z9 [" V$ x) A7 k
) l7 l9 z7 a- }" n
85fe4195f2b44590a95ab4c454b5e04c.png
* u1 L$ C9 @9 R( M
+ W+ W$ b9 W9 e3 u1 P0 }  N8 U3. 打开Keil中的上电复位设置
, L5 j* x7 V# W( C* t

! |" {( P  p) {6 n  b7 J8 H8 N如图所示,首先点击Debug,然后选择Settings
6 f! h9 W  x, a4 R
& a. R+ y3 K9 C
3e5c713b35cf4a9ca89e194acdd1490d.png
3 h: R" V  f7 y' X  @
9 q( k! w3 j( T. Y! U& L8 ^然后选择Flash Download,并勾选Reset and Run9 |8 T* S' Q) Q4 m* i3 p

8 ~+ o" k! r( c+ A注意:这里非常重要,如果不勾选,则通过SWD下载的程序不能直接运行,而需要上电复位后才能运行(复位后进入.s文件中的ResetHandler)。由STM32Cube生成的Keil工程这里默认都是不勾选的!: f; q6 Q2 A7 [% x% f

# [8 I2 b1 {( H" L* x' o: i& W
897967e1803541848b38dac05cd8bc29.png 4 k# F/ S2 B* i5 ^0 i8 R  h/ a

2 o# b  {5 Q1 k' {: i6 l
) W0 y- `/ Z1 {! D
STM32CUBEMAX选择固件包存放的位置
3 ]* a) a% f# Z1 X* m固件包存放的位置,可以在CUBEMAX中进行设置 # @; g8 H( C5 d) t  W  D% Q5 s

! q0 f% K9 w& c) y, Z, B
879b5137ce644622818d8647673946cb.png - B2 ]0 S- r  E7 [

; Y7 P; ~( d  [, k% A0 ASTM32CUBEMAX下载指定的固件包! g7 S4 l, X" y, v
' |4 h! G5 N$ ?- E5 ?
b8fdd6de4b8b4846820d04f3b4827bb5.png 5 _! J! n8 F: ?+ X% m3 F( t

; \7 Z& j5 v9 t; j
05332681daa74ea6af887df45ec32dc9.png 8 o4 |  d6 {+ J6 F" I  W" w" P2 W
' y; \7 p! u: Q: [- L# f$ I
STM32CUBEMAX生成代码时的库选择(HAL或LL)
9 m5 H3 s7 L% ~  K# Q" b# K. a1 [* p
d5d98bac166a4d90b7724a77fb0f9155.png 4 a6 d* Z6 g2 w. F) w( R

5 \/ a" X& `3 J! o. d# Q; \1 w- WSTM32CUBEMAX生成代码时的配置选择参考

3 q% e: x0 m- @* u
$ a& B) c! e2 k9 J
cff0bb9873604ee390a2995718962675.png & ^# u* Q7 ~+ q9 Z

  B3 O' N! k' P3 G! t+ U

3 [! [" l4 }. W6 \STM32CUBEMAX生成函数的位置调节

* C, X: Z2 A; M! W' H# a( ~0 c3 VSTM32CUBEMAX 生成函数的位置,可以在这里调节) M- x* k( F5 i

  D: r( P6 \- w# Q
c22c351c83954d22bcba70b5e7e2b4cb.png
, I* h9 w" U+ T, T4 j# E& m
6 \( y9 S1 T9 @4 b0 _0 \% E3 v; S3 u
5 U4 z+ E) S# o9 C/ R
STM32 HAL库的使用方法

. t1 k' [% K8 U% E# yHAL库的使用方法介绍,打开对应的xx_hal_xx.c文件查看即可,在最上面的注释里
. M/ b  q, Q4 S  f& h+ m' }" A6 R' P+ K
* J8 Y2 W7 g; J8 Z% [$ }
676307d1d15e44aa8613409c59302c1d.png
4 ]. ~' {) ~- d' w6 h5 s6 w$ o/ T, q8 n0 J. i- \. k0 [) i4 \$ `
3bdbf1ec8ada4446bd781c093e1d2654.png
& r: Y5 m+ {% W4 S( q8 s* F6 |1 C5 O" b* l) g
————————————————
% d/ j4 ?7 E, C$ f, U0 P( b) ]) C版权声明:CodeForCoffee2 u% Y9 P$ }  @( `) M( S8 R) m

4 a, e2 C: U4 P' H: r
; C1 P! G6 g! J3 W8 V
赞 收藏 评论0 发布时间:2022-12-24 17:40

举报

0个回答

所属标签

相似技术帖

官网相关资源

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