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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 22:02
目前,网络上关于stm32l0xx系列mcu的资料比较少,l0低功耗系列普遍应用了st公司新出的HAL库,由于没有中文资料,并且HAL库与原来的标准库有一些区别,因此开发起来有一定的难度。本文先从最基本的新建工程入手,后续将陆续记录关于stm32l051c8x的一些应用过程,记录开发过程中遇到的一些问题、思考及心得,以期在做导师项目的过程中最大限度的增添一些乐趣。给做项目的过程增加一点乐趣。新手记录,错误难免,也欢迎高手批评指正
- ^& g- K8 u& F$ ?: t第一步:ST官网下载固件库文件/ g6 Y$ Z: j2 U
2 B2 v5 }7 Y& k* E7 ]& f2 h
首先从官网下载固件库文件包,顺便可以把datasheet等一并下载。文件包名称:en.stm32cubel0,drivers文件夹中,包含有Low Layer (LL) 和hardware abstraction layer (HAL)两种库,以及官方评估板的例程(BSP文件夹),例程虽然没有太多注释,但是对开发有很大的帮助。文件包的详细信息在Documentation文件夹的STM32CubeL0GettingStarted中有详细介绍。如图1所示:
6 J, {3 l- I1 ~. m2 |9 N( ?) A/ c, S1 ~3 W, _1 {: M/ i7 b
20170110141650892.png
+ B* E+ b5 n$ H% @( y0 x1 n+ y0 m
/ t: P0 y9 Q" _/ _8 l6 O& e; M
  第二步:新建工程文件夹
0 g$ q1 L+ ~/ P* ~6 ~4 f# `; c% ~
4 h* R/ B$ M3 {( o- U新建工程文件夹,文件夹下分别新建几个文件夹用于分类存放不同的应用文件。为了图方便,我直接将drivers文件夹复制到了新建工程文件夹下作为库文件,drivers中包含了库文件中的inc和src文件,CMSIS文件夹以及startup文件等,避免修改时出现文件指向错误。Drivers文件夹中很多用不到的文件直接删除即可。其他文件夹分别存放编译时产生的中间文件,工程文件等。' ~! W0 T: i# J2 L$ l& I' f% E, d

9 T& }* {5 |; j3 k4 q第三步:打开MDK新建工程
/ |( o! w& [% ?6 d8 a9 j  @' G! y. {8 M
若MDK中没有安装L0系列的devices pack的话,需要在PackInstaller中安装STM32L0 Series包。如图2所示:+ W/ Q' B. A$ I* @
20170110141706172.png
* j- J- h% b+ [) Q) n, K
1 W4 R% c' M: j3 B
安装好pack之后,即可新建工程Project,选择所需device型号,如图3所示:
. T% G4 Z* q9 W" c
# j0 N+ t9 F8 g* b
20170110141726236.png
! x  F( b3 R( I: ^

1 N# j# ~( Y3 v8 `第四步:添加库文件
' [- s: ?6 ?5 k& z7 l
2 g9 H7 i" o6 l! f5 B& S将project栏文件夹名称按照需要更改,并以此导入库文件,具体需要导入的文件如下图4所示,均从drivers中导入。导入后,drivers中的文件位置不能再做更改,否则会报错。
5 y) o7 A& y3 \! x  i2 e
3 `1 P& x! I: x+ A
20170110141818471.png
8 _/ \/ i0 k, S9 s$ J! ?

& g" A: G2 |- ~: R第五步:配置target选项卡- ^+ K6 X" _7 d, k1 [
( E5 f' t1 A" Y* x; Z7 }
    C/C++选项卡具体操作情况如下图5:
; n6 e, [0 ^2 r. f4 i
  S% s) m* d; k  ^# R) _
20170110141835361.png
5 K, {5 N. H. F! q$ D9 |

3 E7 b# ^: Q& }" RInclude Paths需要将所有包含头文件的文件夹都指向**aths中,否则编译时会找不到相关头文件。如图6所示:, e3 m/ g& R" [
8 p' ?0 c% O( D: L9 l; _; V% c
20170110141855408.png

  h; f! W1 X7 Z0 |
/ ^8 u7 ~( M# ]其他配置均与f系列类似,不再详述。
9 X! ~0 w" E" c8 J, V
7 p  D% f: _& w' z% {其他:新建工程后,在编译过程中曾遇到“Undefined symbol xx(referred from xxx.o)”的报错,发现报错原因主要有两个:1、未将库文件添加齐全,可查询报错的变量在哪一个库文件中,将该库文件添加进来即可;2、头文件(xx.h)新建在Include Paths指向的文件夹外面了。
' c3 P) E4 J" o8 [, u5 `! i; [6 S: Y
7 \% Z& I* ]% e& R" T
9 V) B6 u# j1 k. D( C9 e5 j2 C; _以上步骤,新手记录,错误难免,也欢迎高手批评指正。) i% T; X6 I! I9 G/ H, n

9 n+ J; Y' e; e+ |) u+ [  ]4 l: \
" S& F; E; v9 W# U% I& O" ]
! `, j' |9 e& ]3 C
收藏 评论0 发布时间:2021-11-15 22:02

举报

0个回答

所属标签

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