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

【经验分享】MDK5新建stm32l0xx(Cortex-M0)工程步骤

[复制链接]
STMCU小助手 发布时间:2021-11-15 22:02
目前,网络上关于stm32l0xx系列mcu的资料比较少,l0低功耗系列普遍应用了st公司新出的HAL库,由于没有中文资料,并且HAL库与原来的标准库有一些区别,因此开发起来有一定的难度。本文先从最基本的新建工程入手,后续将陆续记录关于stm32l051c8x的一些应用过程,记录开发过程中遇到的一些问题、思考及心得,以期在做导师项目的过程中最大限度的增添一些乐趣。给做项目的过程增加一点乐趣。新手记录,错误难免,也欢迎高手批评指正  O" _9 _9 y. X$ S% k
第一步:ST官网下载固件库文件  a% B5 Y" F5 S5 Q" R

: h5 u5 t/ T0 c( z1 h% c首先从官网下载固件库文件包,顺便可以把datasheet等一并下载。文件包名称:en.stm32cubel0,drivers文件夹中,包含有Low Layer (LL) 和hardware abstraction layer (HAL)两种库,以及官方评估板的例程(BSP文件夹),例程虽然没有太多注释,但是对开发有很大的帮助。文件包的详细信息在Documentation文件夹的STM32CubeL0GettingStarted中有详细介绍。如图1所示:
9 t) P; w& l* ]+ C7 p' I0 c) k) i/ T& K# |- q/ t2 U4 |- H3 F
20170110141650892.png
* u4 @. f' f+ o! {* C! Q1 n# l

$ j: D9 H; T$ X3 y3 J8 z. Y% E  第二步:新建工程文件夹! F% a; o0 k$ |- T

) V$ B9 L. w, Q* @7 \2 Q新建工程文件夹,文件夹下分别新建几个文件夹用于分类存放不同的应用文件。为了图方便,我直接将drivers文件夹复制到了新建工程文件夹下作为库文件,drivers中包含了库文件中的inc和src文件,CMSIS文件夹以及startup文件等,避免修改时出现文件指向错误。Drivers文件夹中很多用不到的文件直接删除即可。其他文件夹分别存放编译时产生的中间文件,工程文件等。
# g  v; m( y; L7 S. U
: G5 z% E* _8 }: S0 m6 f第三步:打开MDK新建工程
9 t+ a& l+ l& ]
2 M& o! ?' p# _/ a4 I2 P& b若MDK中没有安装L0系列的devices pack的话,需要在PackInstaller中安装STM32L0 Series包。如图2所示:
; e6 V# q- {& w* R/ l5 G: N
20170110141706172.png

! e5 v! b7 p$ Q' ^8 ]- f
4 K: {. W+ ~' f( B) S# Q安装好pack之后,即可新建工程Project,选择所需device型号,如图3所示:
! A! v; Y9 U! q+ y/ r/ m) y, b, j/ e
20170110141726236.png
$ B+ @9 i0 E5 N# F6 J
/ s* X/ Z0 O+ |
第四步:添加库文件
. q; P7 q( g7 l
7 Y. X6 r0 q. h8 \. R/ z+ Z将project栏文件夹名称按照需要更改,并以此导入库文件,具体需要导入的文件如下图4所示,均从drivers中导入。导入后,drivers中的文件位置不能再做更改,否则会报错。
( O! j9 @6 k4 `8 T
& V' J0 |* Y! p. q; I8 F2 J- ~' u
20170110141818471.png

) {" d& M* B+ e# D7 ~% \& V' Y) t6 t0 U9 `7 [: h' L
第五步:配置target选项卡
! H- S$ j  g1 c: T" _& P" n$ H0 A8 K" k2 S. ^/ p
    C/C++选项卡具体操作情况如下图5:2 J- p7 l, s1 A5 F: [9 B

# i- T4 X- s. b# g6 c$ F. v9 D, y1 t4 i
20170110141835361.png
$ T6 q$ ?9 F. q; B# [( t

* D  f# H" z- |  B3 ~/ bInclude Paths需要将所有包含头文件的文件夹都指向**aths中,否则编译时会找不到相关头文件。如图6所示:# d' r1 A4 }" E, U& ?7 y1 m! ?% _+ `

' [/ ~; Y! q* P9 G! j; {, S
20170110141855408.png

& v& e9 a5 U5 [% ]$ X' M% k% ]
1 j& a' J% |! J, n) z7 z+ ]" P* w6 ~其他配置均与f系列类似,不再详述。
  A7 J& j' \8 B* q/ ~5 g6 I- I  Y. J3 I& t' n! X9 H
其他:新建工程后,在编译过程中曾遇到“Undefined symbol xx(referred from xxx.o)”的报错,发现报错原因主要有两个:1、未将库文件添加齐全,可查询报错的变量在哪一个库文件中,将该库文件添加进来即可;2、头文件(xx.h)新建在Include Paths指向的文件夹外面了。$ h6 t. k- g7 |5 k

- d* B4 q% {% Q6 P, C, j2 M0 I8 O% T- m' H7 z, ], D" d
以上步骤,新手记录,错误难免,也欢迎高手批评指正。
7 g/ `% W# m6 Y) J4 @) t) w4 C/ `$ `! i  i
' c- s1 `9 o: a3 D

8 U0 X4 o6 _% k9 \
收藏 评论0 发布时间:2021-11-15 22:02

举报

0个回答

所属标签

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