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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 22:02
目前,网络上关于stm32l0xx系列mcu的资料比较少,l0低功耗系列普遍应用了st公司新出的HAL库,由于没有中文资料,并且HAL库与原来的标准库有一些区别,因此开发起来有一定的难度。本文先从最基本的新建工程入手,后续将陆续记录关于stm32l051c8x的一些应用过程,记录开发过程中遇到的一些问题、思考及心得,以期在做导师项目的过程中最大限度的增添一些乐趣。给做项目的过程增加一点乐趣。新手记录,错误难免,也欢迎高手批评指正! f8 b. n" L6 o3 C% S' v
第一步:ST官网下载固件库文件, |; `" |- B- h5 G5 ^) e
/ t$ h  V( F* ~8 ^# r1 e3 @# t
首先从官网下载固件库文件包,顺便可以把datasheet等一并下载。文件包名称:en.stm32cubel0,drivers文件夹中,包含有Low Layer (LL) 和hardware abstraction layer (HAL)两种库,以及官方评估板的例程(BSP文件夹),例程虽然没有太多注释,但是对开发有很大的帮助。文件包的详细信息在Documentation文件夹的STM32CubeL0GettingStarted中有详细介绍。如图1所示:, r9 w, w' k/ J4 @1 Z$ }
4 u  p0 k: R* U9 j( d, _
20170110141650892.png
6 @% e* N& y- ]* Z, m% J
- M, H- ?$ Q8 ], [, `
  第二步:新建工程文件夹, F5 P% g, \; K
% u; r) ^2 g# x6 Z3 _
新建工程文件夹,文件夹下分别新建几个文件夹用于分类存放不同的应用文件。为了图方便,我直接将drivers文件夹复制到了新建工程文件夹下作为库文件,drivers中包含了库文件中的inc和src文件,CMSIS文件夹以及startup文件等,避免修改时出现文件指向错误。Drivers文件夹中很多用不到的文件直接删除即可。其他文件夹分别存放编译时产生的中间文件,工程文件等。- j4 P2 x7 ?. ~+ |6 u- l

$ S2 K$ q2 j; v2 c* ?  E8 a第三步:打开MDK新建工程
% V6 s8 t0 z4 }8 d$ e1 n7 j( }' Y3 ?; E/ D' M& p5 F
若MDK中没有安装L0系列的devices pack的话,需要在PackInstaller中安装STM32L0 Series包。如图2所示:: G, A# M0 t' O* \5 l( J
20170110141706172.png
% |- @' g1 P8 k) C- z7 |

  c, _5 @0 E) i/ A安装好pack之后,即可新建工程Project,选择所需device型号,如图3所示:3 Y8 u4 }. d# l9 Z1 c0 i
. a$ C' J5 H3 {# g, _' _, z
20170110141726236.png

+ a6 H% \8 ~) G+ D9 k( i6 P8 Z6 R
第四步:添加库文件
! a3 \0 b0 K! G$ r% S  V) G/ ]" J* y, W: i( {
将project栏文件夹名称按照需要更改,并以此导入库文件,具体需要导入的文件如下图4所示,均从drivers中导入。导入后,drivers中的文件位置不能再做更改,否则会报错。' p3 f# W& Y- Z0 B8 S% R
' g) f! ?! w# n# \5 E
20170110141818471.png
& e9 k- A4 O! H

( L+ l1 |8 m: D' V7 ^; I% l4 a7 T第五步:配置target选项卡
4 X- r% D# X6 g4 {, s# z9 H
6 Y8 N# U  O( Q+ c+ [7 y0 X* m& G    C/C++选项卡具体操作情况如下图5:
  s8 e! L- n6 ]0 s7 Y) m( O1 Y- O4 N
20170110141835361.png

$ M+ |+ j6 v, h  f5 _& O0 T: T" x' O* b8 |( v: n
Include Paths需要将所有包含头文件的文件夹都指向**aths中,否则编译时会找不到相关头文件。如图6所示:" e* A6 {2 F6 X# h

9 ?4 j2 t* h6 t/ ]* D* j
20170110141855408.png

/ ]8 j5 t/ X2 n: S0 i6 y% z& Q" @/ k$ ]' ?! l* l. U
其他配置均与f系列类似,不再详述。' R: R4 h) L  i' T5 G
8 m$ w4 \$ b  s8 Z
其他:新建工程后,在编译过程中曾遇到“Undefined symbol xx(referred from xxx.o)”的报错,发现报错原因主要有两个:1、未将库文件添加齐全,可查询报错的变量在哪一个库文件中,将该库文件添加进来即可;2、头文件(xx.h)新建在Include Paths指向的文件夹外面了。
' A7 ?( C2 W# i1 q! r
: v; S+ P, M' p9 a. A% a
$ A7 M1 }5 z# |) c1 @以上步骤,新手记录,错误难免,也欢迎高手批评指正。1 j2 l: B% d9 G) A# f) w9 s
# v; Y! N# [% y4 g! F# }

2 p/ W1 @4 b  D  i
. R7 z; L$ H+ u" R6 p1 S
收藏 评论0 发布时间:2021-11-15 22:02

举报

0个回答

所属标签

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