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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 22:02
目前,网络上关于stm32l0xx系列mcu的资料比较少,l0低功耗系列普遍应用了st公司新出的HAL库,由于没有中文资料,并且HAL库与原来的标准库有一些区别,因此开发起来有一定的难度。本文先从最基本的新建工程入手,后续将陆续记录关于stm32l051c8x的一些应用过程,记录开发过程中遇到的一些问题、思考及心得,以期在做导师项目的过程中最大限度的增添一些乐趣。给做项目的过程增加一点乐趣。新手记录,错误难免,也欢迎高手批评指正
$ V. D5 ^! s- {" }; d9 @  N第一步:ST官网下载固件库文件
8 r6 {, B) f: c) m
4 I4 M" n# o1 U2 ^# F/ X4 D2 z% x5 p首先从官网下载固件库文件包,顺便可以把datasheet等一并下载。文件包名称:en.stm32cubel0,drivers文件夹中,包含有Low Layer (LL) 和hardware abstraction layer (HAL)两种库,以及官方评估板的例程(BSP文件夹),例程虽然没有太多注释,但是对开发有很大的帮助。文件包的详细信息在Documentation文件夹的STM32CubeL0GettingStarted中有详细介绍。如图1所示:7 T0 J3 h/ n* Q. V$ z. S0 }

; v8 o3 ]$ p1 ]0 o  y9 S
20170110141650892.png

. [$ v3 q. b; f- A" x  V; t
; c: c$ O) b; j0 o+ m% o0 P3 V  第二步:新建工程文件夹
% G& r* @8 K2 t7 ]
0 Y* o/ e9 W6 a  ]3 o3 x新建工程文件夹,文件夹下分别新建几个文件夹用于分类存放不同的应用文件。为了图方便,我直接将drivers文件夹复制到了新建工程文件夹下作为库文件,drivers中包含了库文件中的inc和src文件,CMSIS文件夹以及startup文件等,避免修改时出现文件指向错误。Drivers文件夹中很多用不到的文件直接删除即可。其他文件夹分别存放编译时产生的中间文件,工程文件等。2 X$ s/ B2 x" }* ?* ]/ I2 I
! x+ @3 X0 v9 w; ?3 T1 ~
第三步:打开MDK新建工程5 C3 R) z# Q" \" x6 w3 ~

( I: }" U; h! ]5 T5 V2 Y$ i, R% I若MDK中没有安装L0系列的devices pack的话,需要在PackInstaller中安装STM32L0 Series包。如图2所示:
  l7 x2 ]$ o" s
20170110141706172.png
/ [  b/ {; L1 O7 A
8 ?0 k* [! J" ]/ V- R! J
安装好pack之后,即可新建工程Project,选择所需device型号,如图3所示:) Z8 W" ^: e# m
5 x; u: y( M2 C/ z6 V" _) {
20170110141726236.png
3 L7 _0 I& V) F  q8 A
( U8 G$ _$ _, s% s+ e9 a9 b; m' h& Y
第四步:添加库文件
- {- k: Z9 ~( `! f% B$ q
7 [/ c6 {% S: b8 J4 o7 J3 W将project栏文件夹名称按照需要更改,并以此导入库文件,具体需要导入的文件如下图4所示,均从drivers中导入。导入后,drivers中的文件位置不能再做更改,否则会报错。. U1 Y( m$ v4 C0 F, {
( E& \; T# Y. H% W- e/ n  e
20170110141818471.png
% }) R6 M, K1 W: s  e/ H9 y
, s# V6 P! E6 V5 a4 o
第五步:配置target选项卡
0 G; e. Q% D; Q; V# ?- V' o5 M
5 U8 v2 v% U9 m% ?0 R. q& r    C/C++选项卡具体操作情况如下图5:. s, k7 C' ?! z* o7 G; f

5 v/ ^- [; z/ Q6 |
20170110141835361.png

8 [. t$ t% x3 z) {' F% Z
2 N  h' I; H/ D2 QInclude Paths需要将所有包含头文件的文件夹都指向**aths中,否则编译时会找不到相关头文件。如图6所示:0 y4 a& m2 J9 n# H6 V4 s% P3 s0 a0 C: T

' l1 ]- K4 \6 I7 _/ `
20170110141855408.png
$ Z6 q/ C0 B" _4 o; M, G( O; X. Q
- H' q: t7 n2 c1 o7 [. M4 W9 R
其他配置均与f系列类似,不再详述。
+ [: j2 A$ E) G5 m* w6 V0 P6 C- ]5 f* \) O# l# e  e; B7 B
其他:新建工程后,在编译过程中曾遇到“Undefined symbol xx(referred from xxx.o)”的报错,发现报错原因主要有两个:1、未将库文件添加齐全,可查询报错的变量在哪一个库文件中,将该库文件添加进来即可;2、头文件(xx.h)新建在Include Paths指向的文件夹外面了。- Q0 \9 z' [. d' E

" x) l! I  @% D' `* T) y$ e$ `9 p% [0 n; d
以上步骤,新手记录,错误难免,也欢迎高手批评指正。- m+ @6 E3 K6 R
1 }2 v- B) O" R2 ~" B
5 S9 P$ e0 U6 p( j( a6 K
$ {9 m5 v5 Y. ]& h* f- s" F! d; a
收藏 评论0 发布时间:2021-11-15 22:02

举报

0个回答

所属标签

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