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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 22:02
目前,网络上关于stm32l0xx系列mcu的资料比较少,l0低功耗系列普遍应用了st公司新出的HAL库,由于没有中文资料,并且HAL库与原来的标准库有一些区别,因此开发起来有一定的难度。本文先从最基本的新建工程入手,后续将陆续记录关于stm32l051c8x的一些应用过程,记录开发过程中遇到的一些问题、思考及心得,以期在做导师项目的过程中最大限度的增添一些乐趣。给做项目的过程增加一点乐趣。新手记录,错误难免,也欢迎高手批评指正
+ ]' L6 |2 |  t8 ~" Z. e第一步:ST官网下载固件库文件
. y/ ~4 P" l2 R, v; C0 j
  {" n1 X, v$ P3 h( f3 k; p; W首先从官网下载固件库文件包,顺便可以把datasheet等一并下载。文件包名称:en.stm32cubel0,drivers文件夹中,包含有Low Layer (LL) 和hardware abstraction layer (HAL)两种库,以及官方评估板的例程(BSP文件夹),例程虽然没有太多注释,但是对开发有很大的帮助。文件包的详细信息在Documentation文件夹的STM32CubeL0GettingStarted中有详细介绍。如图1所示:
, |  t# v* F- t8 f
* \- B# ~  I3 d. e8 t' P6 p$ q
20170110141650892.png

0 _" m4 L3 h8 m2 p! p) B) V& Q; E2 H) w% V+ v! p# e, g5 s
  第二步:新建工程文件夹4 ]3 c$ }5 F- @1 n# k5 W* s

: F0 ~# o6 E* W新建工程文件夹,文件夹下分别新建几个文件夹用于分类存放不同的应用文件。为了图方便,我直接将drivers文件夹复制到了新建工程文件夹下作为库文件,drivers中包含了库文件中的inc和src文件,CMSIS文件夹以及startup文件等,避免修改时出现文件指向错误。Drivers文件夹中很多用不到的文件直接删除即可。其他文件夹分别存放编译时产生的中间文件,工程文件等。
7 f9 F. x5 S' h; m3 ^, H
' ]* `- c1 G9 L% R第三步:打开MDK新建工程
; y  j9 V5 s! u% {) Z9 m) _! @$ k2 M9 ~4 j
若MDK中没有安装L0系列的devices pack的话,需要在PackInstaller中安装STM32L0 Series包。如图2所示:8 }* m& P6 m) [/ q/ W6 |4 m
20170110141706172.png

. i& F/ z. \2 B+ t7 B  K. J& W+ J& I, ]1 t
安装好pack之后,即可新建工程Project,选择所需device型号,如图3所示:
9 _, j) A, b8 g: b* M9 Y! o. f5 K4 K7 o
20170110141726236.png
9 u# E5 `3 X1 S  J. p1 X" Z! I3 r( w

! [0 {: z: j" G9 {# h! O第四步:添加库文件/ I0 @0 l, W& v; _! w

$ C, {0 V, I2 g7 b$ L+ h- J将project栏文件夹名称按照需要更改,并以此导入库文件,具体需要导入的文件如下图4所示,均从drivers中导入。导入后,drivers中的文件位置不能再做更改,否则会报错。
' N/ o0 y6 ?) o. K* j' `
# k& s* Q0 @) x1 u; C6 N
20170110141818471.png
; W3 {; d4 q; {5 q

7 r' w2 X& t' a+ \' y+ l; P第五步:配置target选项卡3 `- y) N  K& F( \$ \" h6 G
7 _: K( @7 L; z% O
    C/C++选项卡具体操作情况如下图5:
5 c. d4 X- u5 i; e+ j
! ^" @0 ^8 e# L9 M2 o1 H/ p
20170110141835361.png
5 p& b" l5 ^3 Y) o7 |! [
1 Y. H# {8 R5 G% O0 W! ]; q
Include Paths需要将所有包含头文件的文件夹都指向**aths中,否则编译时会找不到相关头文件。如图6所示:- o; z7 P6 m1 p, W+ i* r& V- w
( x0 P: P9 E6 J
20170110141855408.png

- r: t+ _$ e* h: }) X, C7 o8 d
' H0 Q% Y. W# f( H9 G其他配置均与f系列类似,不再详述。3 h  |* i4 E7 |3 K5 k$ @

. H- O+ H4 d3 ?' q9 y) x0 N# Y$ t其他:新建工程后,在编译过程中曾遇到“Undefined symbol xx(referred from xxx.o)”的报错,发现报错原因主要有两个:1、未将库文件添加齐全,可查询报错的变量在哪一个库文件中,将该库文件添加进来即可;2、头文件(xx.h)新建在Include Paths指向的文件夹外面了。
+ g, E5 h2 b( D' d/ L" T+ _2 ~
( Z4 T# S9 V( r0 G( m: I' f9 H; h7 Q# i3 }# F' y3 E- m
以上步骤,新手记录,错误难免,也欢迎高手批评指正。( B. i0 W# ^$ z' q

$ G, v+ R" D4 _4 f$ a
, D0 F( Q% F" A. p0 \  f; |0 V3 \- r. X1 @6 Q9 @+ j0 p
收藏 评论0 发布时间:2021-11-15 22:02

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版