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

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

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

& Y: f" E$ M7 @1 G1 Z; H首先从官网下载固件库文件包,顺便可以把datasheet等一并下载。文件包名称:en.stm32cubel0,drivers文件夹中,包含有Low Layer (LL) 和hardware abstraction layer (HAL)两种库,以及官方评估板的例程(BSP文件夹),例程虽然没有太多注释,但是对开发有很大的帮助。文件包的详细信息在Documentation文件夹的STM32CubeL0GettingStarted中有详细介绍。如图1所示:
. I& |% H/ J/ E# _
) e: Z" R; S2 X2 _  b- l
20170110141650892.png
2 [( ~8 c  _4 M2 z3 Q8 ^8 W( k7 @1 ?
  ?& b) x) Q3 f% r+ A: }
  第二步:新建工程文件夹  V0 a3 D: w' X" D2 _
$ P9 }% C- I! Z4 m: f
新建工程文件夹,文件夹下分别新建几个文件夹用于分类存放不同的应用文件。为了图方便,我直接将drivers文件夹复制到了新建工程文件夹下作为库文件,drivers中包含了库文件中的inc和src文件,CMSIS文件夹以及startup文件等,避免修改时出现文件指向错误。Drivers文件夹中很多用不到的文件直接删除即可。其他文件夹分别存放编译时产生的中间文件,工程文件等。$ m: ?- v# w* G4 i; d' k( Z; G) [
- K, g% o! M  c; D) \$ l
第三步:打开MDK新建工程
! u8 X; {! V7 a6 f4 _* {+ k- ?9 F* i0 v1 Y. H) e
若MDK中没有安装L0系列的devices pack的话,需要在PackInstaller中安装STM32L0 Series包。如图2所示:
- q: w0 d: A: I9 ]1 v  B! v$ K
20170110141706172.png

, g! c# p# |, Z$ k2 u1 j
' }( l, b% Y, F4 N0 V( x" |安装好pack之后,即可新建工程Project,选择所需device型号,如图3所示:1 G. H1 L; n, d: y  I

0 o0 \* P( G* D9 r( I  C
20170110141726236.png
: w: o* ^7 Z7 u8 u' R1 B* E
* `$ }. e+ ~7 v- \0 T
第四步:添加库文件8 p4 \# o. K& z

& p5 {4 l- W$ x( V) Z( p将project栏文件夹名称按照需要更改,并以此导入库文件,具体需要导入的文件如下图4所示,均从drivers中导入。导入后,drivers中的文件位置不能再做更改,否则会报错。
# D6 q3 e7 Q' e, @! |5 Z1 B4 r7 t- V) l8 |
20170110141818471.png

3 J7 J4 U, B( y, m6 g# O! O5 V* `$ Q1 q! E
第五步:配置target选项卡
1 Z. S- I; T0 F1 l1 y5 _/ y  d4 Y* {5 h1 Y% z+ l
    C/C++选项卡具体操作情况如下图5:
; `) [/ E1 O# h' v) j- u8 f- u6 N4 E% e0 a$ R, D& I
20170110141835361.png
: Q. i+ q% B/ v4 V7 d& f1 j& L
% u: I" |1 k; k: U: n8 L1 }4 h
Include Paths需要将所有包含头文件的文件夹都指向**aths中,否则编译时会找不到相关头文件。如图6所示:
) n+ w. m. P- G) U1 u# u% _. K* R* J) _3 N
20170110141855408.png
; t; q7 C& {- p- @4 U/ f
0 j  n0 z: R/ ]# R: Y
其他配置均与f系列类似,不再详述。
' {/ W7 y" D4 N# Z* X- }  A' v) h  L! Z1 d
其他:新建工程后,在编译过程中曾遇到“Undefined symbol xx(referred from xxx.o)”的报错,发现报错原因主要有两个:1、未将库文件添加齐全,可查询报错的变量在哪一个库文件中,将该库文件添加进来即可;2、头文件(xx.h)新建在Include Paths指向的文件夹外面了。# T  j. j! l$ G; n

0 W3 F3 r. ?; |' r9 j8 M1 l% P9 Q; |( Z5 y+ K. G# N5 f
以上步骤,新手记录,错误难免,也欢迎高手批评指正。% f& {. X7 z( [" Q
7 g' P+ Y1 p. M/ _# F+ w  B5 {
, [1 D& a* T$ D& r, s/ ?
$ _" _6 r# N* i! U1 U6 a
收藏 评论0 发布时间:2021-11-15 22:02

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版