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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 22:02
目前,网络上关于stm32l0xx系列mcu的资料比较少,l0低功耗系列普遍应用了st公司新出的HAL库,由于没有中文资料,并且HAL库与原来的标准库有一些区别,因此开发起来有一定的难度。本文先从最基本的新建工程入手,后续将陆续记录关于stm32l051c8x的一些应用过程,记录开发过程中遇到的一些问题、思考及心得,以期在做导师项目的过程中最大限度的增添一些乐趣。给做项目的过程增加一点乐趣。新手记录,错误难免,也欢迎高手批评指正
3 w" l! c3 v. u. x- o/ e第一步:ST官网下载固件库文件
0 J9 a! ?1 {# A' b' L1 c, d" u9 m, H( x' @
首先从官网下载固件库文件包,顺便可以把datasheet等一并下载。文件包名称:en.stm32cubel0,drivers文件夹中,包含有Low Layer (LL) 和hardware abstraction layer (HAL)两种库,以及官方评估板的例程(BSP文件夹),例程虽然没有太多注释,但是对开发有很大的帮助。文件包的详细信息在Documentation文件夹的STM32CubeL0GettingStarted中有详细介绍。如图1所示:
+ }9 J5 H7 G# G% m- y0 n' P$ q! T6 `- D/ o7 k3 X+ Y
20170110141650892.png
+ [, ~5 T) j" J( g8 l& S' t% T
' ~% c1 x, G4 Z  H! R" _5 e
  第二步:新建工程文件夹
' t, W4 a* O# `" h% N! ]/ q# h1 Y% ~1 n# h4 t5 U, p" ~% S, l
新建工程文件夹,文件夹下分别新建几个文件夹用于分类存放不同的应用文件。为了图方便,我直接将drivers文件夹复制到了新建工程文件夹下作为库文件,drivers中包含了库文件中的inc和src文件,CMSIS文件夹以及startup文件等,避免修改时出现文件指向错误。Drivers文件夹中很多用不到的文件直接删除即可。其他文件夹分别存放编译时产生的中间文件,工程文件等。
" {4 r9 a7 A* h9 @, W& u8 M" K, i3 q* E; J5 H; P2 }5 g# j+ A6 s
第三步:打开MDK新建工程
; s- u# w" P8 {; }% K7 O) {7 B! N2 c$ X6 Y, `
若MDK中没有安装L0系列的devices pack的话,需要在PackInstaller中安装STM32L0 Series包。如图2所示:
. [/ J2 k( I7 y2 G
20170110141706172.png

' P' x' v5 q4 Q
; c) P, B( p# R7 I! s安装好pack之后,即可新建工程Project,选择所需device型号,如图3所示:
! L( T) R" c$ ?' p) m, ^; T  g# i% q5 ^& F5 m# \! I% T
20170110141726236.png
3 o) q. z" k: G7 _3 S. U# G

* i* p# L) t7 B! l, X% T; D. ~第四步:添加库文件
- y0 h% w, w5 X" M
" g2 f. N, [& s7 H将project栏文件夹名称按照需要更改,并以此导入库文件,具体需要导入的文件如下图4所示,均从drivers中导入。导入后,drivers中的文件位置不能再做更改,否则会报错。
7 c/ L, W/ v! H; q" S5 }1 l" {5 I; p) a  L+ V9 f
20170110141818471.png

4 T, @4 v8 `5 Y/ @7 C0 O! O; y7 [2 L  w/ P7 ~6 q
第五步:配置target选项卡$ }$ [0 A( q8 [* w* U0 V, u
( i" Y/ F3 ^9 V1 E, T- s- f% M+ C
    C/C++选项卡具体操作情况如下图5:
& y) d- \( O, ?" U4 j6 f& Q# h& h, O  e7 D9 z9 G, L
20170110141835361.png
  J) \" c" W4 z$ F0 m2 ^

9 t4 I$ i1 o% @9 QInclude Paths需要将所有包含头文件的文件夹都指向**aths中,否则编译时会找不到相关头文件。如图6所示:
  f4 H; V. o- f, W# h
+ c2 R, }  N  e; C3 {
20170110141855408.png
9 v0 z* k3 T# P3 L2 S# D' x! g
1 p' i( m# J7 T7 M( m7 w9 Y
其他配置均与f系列类似,不再详述。4 Q  C& r8 j- |& }4 U- a, f

; K7 f9 h7 w( g& K  v其他:新建工程后,在编译过程中曾遇到“Undefined symbol xx(referred from xxx.o)”的报错,发现报错原因主要有两个:1、未将库文件添加齐全,可查询报错的变量在哪一个库文件中,将该库文件添加进来即可;2、头文件(xx.h)新建在Include Paths指向的文件夹外面了。
+ h  h/ N  F! p8 h$ ?* }' y% w% ^" f+ i2 J. T1 Z

% a4 G! n% [8 O% e以上步骤,新手记录,错误难免,也欢迎高手批评指正。" g1 F0 ]: y, a" m% `
2 J) s$ |5 @) h0 n

7 B9 f' R5 T+ w" S! `9 u4 |3 b( S5 x# s' u" n8 o( u1 {" \2 S
收藏 评论0 发布时间:2021-11-15 22:02

举报

0个回答

所属标签

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