STMCU小助手
发布时间:2021-11-15 22:02
|
目前,网络上关于stm32l0xx系列mcu的资料比较少,l0低功耗系列普遍应用了st公司新出的HAL库,由于没有中文资料,并且HAL库与原来的标准库有一些区别,因此开发起来有一定的难度。本文先从最基本的新建工程入手,后续将陆续记录关于stm32l051c8x的一些应用过程,记录开发过程中遇到的一些问题、思考及心得,以期在做导师项目的过程中最大限度的增添一些乐趣。给做项目的过程增加一点乐趣。新手记录,错误难免,也欢迎高手批评指正 第一步:ST官网下载固件库文件9 u" X7 B; g8 I % s) R) ^8 [1 E0 C# _1 Y 首先从官网下载固件库文件包,顺便可以把datasheet等一并下载。文件包名称:en.stm32cubel0,drivers文件夹中,包含有Low Layer (LL) 和hardware abstraction layer (HAL)两种库,以及官方评估板的例程(BSP文件夹),例程虽然没有太多注释,但是对开发有很大的帮助。文件包的详细信息在Documentation文件夹的STM32CubeL0GettingStarted中有详细介绍。如图1所示:9 m; s7 E4 z5 f3 y; {- w
3 V6 M2 ~$ _! H* E. e5 @ 第二步:新建工程文件夹 ' C( p5 O* Q U. [0 v0 m9 o; P 新建工程文件夹,文件夹下分别新建几个文件夹用于分类存放不同的应用文件。为了图方便,我直接将drivers文件夹复制到了新建工程文件夹下作为库文件,drivers中包含了库文件中的inc和src文件,CMSIS文件夹以及startup文件等,避免修改时出现文件指向错误。Drivers文件夹中很多用不到的文件直接删除即可。其他文件夹分别存放编译时产生的中间文件,工程文件等。 % ]' T3 S# ~ \2 o( v 第三步:打开MDK新建工程+ \; |3 p; r7 X+ {! y& Q ' x1 w! B" M2 I' c' W' G 若MDK中没有安装L0系列的devices pack的话,需要在PackInstaller中安装STM32L0 Series包。如图2所示:* d) a9 h8 H3 x& L9 x5 c1 D
- U, T: m# U; t9 f. [; I2 e; K 安装好pack之后,即可新建工程Project,选择所需device型号,如图3所示:" \4 g7 m+ U% Q: I: v' D
第四步:添加库文件 . t4 ]1 P9 v, ^8 m6 h# ^ 将project栏文件夹名称按照需要更改,并以此导入库文件,具体需要导入的文件如下图4所示,均从drivers中导入。导入后,drivers中的文件位置不能再做更改,否则会报错。
第五步:配置target选项卡 # }+ U% U# z* y, ]1 Z7 | C/C++选项卡具体操作情况如下图5:: J' U1 Z/ Z3 l) z9 t- Z, f* ~ 2 b6 g F# U/ W9 M
# {- y( J3 n0 M" [. j" R; b* [ Include Paths需要将所有包含头文件的文件夹都指向**aths中,否则编译时会找不到相关头文件。如图6所示:" T* _+ Y4 |+ \- s- K- E5 ` c 8 e0 ~) B6 L2 L. }+ N+ y ~, ~7 R7 ?; |
6 |; X; u5 e& h8 v 其他配置均与f系列类似,不再详述。* r2 m# A7 r& h9 ^& m / W1 X9 U% q& x* V 其他:新建工程后,在编译过程中曾遇到“Undefined symbol xx(referred from xxx.o)”的报错,发现报错原因主要有两个:1、未将库文件添加齐全,可查询报错的变量在哪一个库文件中,将该库文件添加进来即可;2、头文件(xx.h)新建在Include Paths指向的文件夹外面了。$ @% O1 L" O- i7 t% h # l$ x' d' L( M% Z9 c 以上步骤,新手记录,错误难免,也欢迎高手批评指正。2 U, k! n( x1 ?4 B' w % z+ q4 V/ d" o" A0 I- C0 t% ] . r& ?4 x* f( N$ k* l |
微信公众号
手机版