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

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

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

3 _# j7 u. }$ r- y1 |  `. v
20170110141650892.png
7 d6 k' h" q* {. }
3 V6 M2 ~$ _! H* E. e5 @
  第二步:新建工程文件夹
2 d2 \" A: j$ {- _/ e' C( p5 O* Q  U. [0 v0 m9 o; P
新建工程文件夹,文件夹下分别新建几个文件夹用于分类存放不同的应用文件。为了图方便,我直接将drivers文件夹复制到了新建工程文件夹下作为库文件,drivers中包含了库文件中的inc和src文件,CMSIS文件夹以及startup文件等,避免修改时出现文件指向错误。Drivers文件夹中很多用不到的文件直接删除即可。其他文件夹分别存放编译时产生的中间文件,工程文件等。
" P9 K# V/ ]9 F" r' I: Y5 J$ h  m% ]' T3 S# ~  \2 o( v
第三步:打开MDK新建工程+ \; |3 p; r7 X+ {! y& Q
' x1 w! B" M2 I' c' W' G
若MDK中没有安装L0系列的devices pack的话,需要在PackInstaller中安装STM32L0 Series包。如图2所示:* d) a9 h8 H3 x& L9 x5 c1 D
20170110141706172.png

" x/ W) h# q4 z# x- U, T: m# U; t9 f. [; I2 e; K
安装好pack之后,即可新建工程Project,选择所需device型号,如图3所示:" \4 g7 m+ U% Q: I: v' D

4 A9 e8 H5 j9 y9 ^) x7 ~. z2 e% h
20170110141726236.png

) F- N: f" r2 s7 E! j# [$ a5 M8 O
0 ?* f* U& y8 U9 R6 [& g+ N* y第四步:添加库文件
0 ?4 a$ b" h) D- \+ U! T. c. t4 ]1 P9 v, ^8 m6 h# ^
将project栏文件夹名称按照需要更改,并以此导入库文件,具体需要导入的文件如下图4所示,均从drivers中导入。导入后,drivers中的文件位置不能再做更改,否则会报错。
. W5 l6 S  _# U! w; H6 n3 x# n5 S+ z
) P2 \6 a# a9 N
20170110141818471.png
* ?, t) H4 @' m% d( q! U

$ R/ f. |1 P  k. o$ H第五步:配置target选项卡
) e* N3 j2 _9 ?, ?8 d# }+ U% U# z* y, ]1 Z7 |
    C/C++选项卡具体操作情况如下图5:: J' U1 Z/ Z3 l) z9 t- Z, f* ~
2 b6 g  F# U/ W9 M
20170110141835361.png
% m* X3 \9 F& W! [: @% u9 G; {- U
# {- y( J3 n0 M" [. j" R; b* [
Include Paths需要将所有包含头文件的文件夹都指向**aths中,否则编译时会找不到相关头文件。如图6所示:" T* _+ Y4 |+ \- s- K- E5 `  c
8 e0 ~) B6 L2 L. }+ N+ y  ~, ~7 R7 ?; |
20170110141855408.png
  d9 ^2 ?$ X: m
6 |; X; u5 e& h8 v
其他配置均与f系列类似,不再详述。* r2 m# A7 r& h9 ^& m
/ W1 X9 U% q& x* V
其他:新建工程后,在编译过程中曾遇到“Undefined symbol xx(referred from xxx.o)”的报错,发现报错原因主要有两个:1、未将库文件添加齐全,可查询报错的变量在哪一个库文件中,将该库文件添加进来即可;2、头文件(xx.h)新建在Include Paths指向的文件夹外面了。$ @% O1 L" O- i7 t% h
# l$ x' d' L( M% Z9 c

; h3 S: a3 U6 ]2 d4 I, ^以上步骤,新手记录,错误难免,也欢迎高手批评指正。2 U, k! n( x1 ?4 B' w
% z+ q4 V/ d" o" A0 I- C0 t% ]
. r& ?4 x* f( N$ k* l

$ y: `$ n% |" Y& a
赞 收藏 评论0 发布时间:2021-11-15 22:02

举报

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