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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 22:02
目前,网络上关于stm32l0xx系列mcu的资料比较少,l0低功耗系列普遍应用了st公司新出的HAL库,由于没有中文资料,并且HAL库与原来的标准库有一些区别,因此开发起来有一定的难度。本文先从最基本的新建工程入手,后续将陆续记录关于stm32l051c8x的一些应用过程,记录开发过程中遇到的一些问题、思考及心得,以期在做导师项目的过程中最大限度的增添一些乐趣。给做项目的过程增加一点乐趣。新手记录,错误难免,也欢迎高手批评指正
$ S2 M) E$ D% ]& r6 ~+ x0 e" m第一步:ST官网下载固件库文件  o7 V. T3 i* Y* X: @) a/ j- v
8 t( r! R1 T7 K$ P' b
首先从官网下载固件库文件包,顺便可以把datasheet等一并下载。文件包名称:en.stm32cubel0,drivers文件夹中,包含有Low Layer (LL) 和hardware abstraction layer (HAL)两种库,以及官方评估板的例程(BSP文件夹),例程虽然没有太多注释,但是对开发有很大的帮助。文件包的详细信息在Documentation文件夹的STM32CubeL0GettingStarted中有详细介绍。如图1所示:
( q$ H9 c- l5 M: |
" Q. m! [$ W3 ]3 Y. _3 v
20170110141650892.png
* |; ~) h+ O4 O0 f) p7 W7 }& Q* ?

2 f0 `: K0 u# d$ L# V) z: Q  第二步:新建工程文件夹1 ]# z' k! s2 m3 ~' M5 ~& o+ \3 I

/ q0 I/ X/ F3 B2 q新建工程文件夹,文件夹下分别新建几个文件夹用于分类存放不同的应用文件。为了图方便,我直接将drivers文件夹复制到了新建工程文件夹下作为库文件,drivers中包含了库文件中的inc和src文件,CMSIS文件夹以及startup文件等,避免修改时出现文件指向错误。Drivers文件夹中很多用不到的文件直接删除即可。其他文件夹分别存放编译时产生的中间文件,工程文件等。
- K# ]( M& e& `4 d% L- e* D0 B) L3 `; T2 _$ W6 k
第三步:打开MDK新建工程
5 V7 r( [$ P$ W+ q* U. w$ q$ H9 d0 W; V" c" J3 F7 e
若MDK中没有安装L0系列的devices pack的话,需要在PackInstaller中安装STM32L0 Series包。如图2所示:8 r2 p; r' i- W" v
20170110141706172.png

3 {# j- {0 N! L& v/ t( o# O# [
8 r2 ~$ G, q* X3 P" S安装好pack之后,即可新建工程Project,选择所需device型号,如图3所示:
* c8 L! W# `) n8 a% n; _# g. V' w- c! a
20170110141726236.png
* W" f' p  [( M& x4 j6 ~7 R

9 H# X. D; t. y' r, X+ U第四步:添加库文件4 m7 u2 [  N; y7 P% W% {; c

9 ]/ q7 X6 e; ?, T将project栏文件夹名称按照需要更改,并以此导入库文件,具体需要导入的文件如下图4所示,均从drivers中导入。导入后,drivers中的文件位置不能再做更改,否则会报错。- e* ?- r. ?. [* ^2 y- T/ e

6 B; P2 M$ k% e6 m+ t7 M
20170110141818471.png
% g5 x: D: p, V6 \/ [4 ^

4 O! a  a" ~- T7 _1 U第五步:配置target选项卡: Z+ l. e, h3 H) |( e; ^

6 P3 m8 ^; k& g" B; z    C/C++选项卡具体操作情况如下图5:5 G3 L0 R2 D# K/ e% ?9 X" O/ o
% F# f) f5 w0 Z
20170110141835361.png
: \6 P+ C6 n8 Z' B3 q9 X9 c
. @( R" p$ f" z& ?$ W2 [" J
Include Paths需要将所有包含头文件的文件夹都指向**aths中,否则编译时会找不到相关头文件。如图6所示:
" Y# ^" e, f2 T% ?8 a
( `& u( w, @  P' ?# D3 O9 _/ i
20170110141855408.png
1 v* l% U% x& Q9 T9 b; ^$ r, ?
( P# e7 Y) |$ \2 o; M( Z9 W1 w; s$ {
其他配置均与f系列类似,不再详述。
0 t* d, L  e0 ^( ^
9 j* l: ]% v/ g  {其他:新建工程后,在编译过程中曾遇到“Undefined symbol xx(referred from xxx.o)”的报错,发现报错原因主要有两个:1、未将库文件添加齐全,可查询报错的变量在哪一个库文件中,将该库文件添加进来即可;2、头文件(xx.h)新建在Include Paths指向的文件夹外面了。( W% G: \9 Y+ t; R) L4 [. D- h

/ @4 R: U+ i. z% m& U' Q* `, L  H; ]: F. y/ U1 M
以上步骤,新手记录,错误难免,也欢迎高手批评指正。# {, K2 ^5 m& N8 ?7 M% q
7 d7 X  v9 @! y8 |9 T
  k/ g* g3 f3 A5 T3 Z0 ?. A
& N. p4 C8 i' ^/ f2 d. ~) T" h
赞 收藏 评论0 发布时间:2021-11-15 22:02

举报

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