最近因为一些事情需要用到STM32f0系列的单片机,之前一般都采用的是F1系列,因此但是由于经验不足还是出现了一些问题,现在将过程及问题记录在下。
要建立一个工程,其步骤如下:
- 1
- 2
1、官网下载pack包,
网上的步骤很详细,可以参考
https://jingyan.baidu.com/article/4b07be3ca4ff7b48b380f3ec.html
- 1
- 2
2、下载资料,下载官方的历程
1、打开官网 www.st.com
2、官网打开后,选中Tools&Software,输入STSW——STM32048
- 1
- 2
得到
3、对于弹出的页面选择accept.,之后官网会让填写信息,姓名之类不重要,但是邮箱要真实正确,因为会发消息到邮箱验证,由于我已经完成了首次验证,所以无法具体演示。
下载完成后后会得到压缩包。en.stm32f0_stdperiph_lib
解压后,按照下面路径打开打开
C:…\en.stm32f0_stdperiph_lib\STM32F0xx_StdPeriph_Lib_V1.5.0\Projects\STM32F0xx_StdPeriph_Templates\MDK-ARM
出现问题及解决方法
1、打开工程,出现了警告Loading PDSC Debug Descripition failed for STMicroelectrionics STM32F051K8 …
找到keil的Build Output窗口提示的File路径,找到Keil.STM32Lxxx_DFP.pdsc,去掉其只读属性,打开Keil.STM32Lxxx_DFP.pdsc文件,搜索message,删除行“Message(2, “Not a genuine ST Device! Abort connection.”);”,保存文件,恢复文件属性,完成。
这个问题不大,不解决也行,但是如果不解决,用到STM32F4的时候也会出现。
接下来就是重点,编译之后出现了许多的错误
…\Libraries\CMSIS\Device\ST\STM32F0xx\Include\stm32f0xx.h(479): error: #5: cannot open source input file “core_cm0.h”: No such file or directory
#include “core_cm0.h”
…\system_stm32f0xx.c: 0 warnings, 1 error
…
错误类型都一样,总共有24个错误,官网下载的程序出现这种情况,就让我这个新人很难受了,
网上有很多人提出同样的问题,并给出了解决办法,认为没有或者包含stm32f0xx_.h出现了问题,判断宏定义不对,提供了两种解决方案。
或者
但是笔者尝试后发现并没有成功,
因为笔者自己最初也不是很清楚这个第一种方法的宏定义的作用及用法,所以在失败后便怀疑是自己宏定义出现错误,钻了牛角尖,花了一段时间也没有解决,当时笔者并没有深究,在网上根据资料提示的步骤开始工程建立,但是工程建好之后,还是出现了类似的问题,第一次我怀疑自己步骤出现了问题,检查不出问题,于是我又重新建立,但是两次之后依然是这样,于是我又多查几份资料,实在发现不出问题,于是我便只有一步一步检查了,最终在一份资料上得到了提示。
路径添加出现了问题,一般在教初学者学习时,可能为了方便,就让把所有文件的路径都添加,但是实际这里应当添加的是所有头文件呢的路径,前面的几篇文章介绍都强调的添加文件要依次添加到最后一级,但是这里添加路径的作用到底是什么就容易让人忽略。
之后,添加上
再编译之后,就解决了这个问题。
由此,笔者想到,之前的问题是否也是同样的原理,都是缺少添加头文件的路径,随后根据建立工程需要的文件来寻找官方工程里的文件,发现确实少了一个路径,添加后就不报错了。
总结
总体而言,问题十分基础,但是出现这些问题也给予笔者以下几点教训,
1、工程最好自己建
笔者的指导老师曾在笔者初学时就批评过直接用别人建好的工程来写程序这种做法,虽然用别人建好的工程很方便,但是也会使人不能深入了解建工程中每个步骤的作用。
2、尽信书不如无书
遇到问题最好先自己思考和检查,网上查阅别人给出的解决方法虽然虽然快捷,但是有时也会限制自己的思路。
3、工欲善其事,必先利其器
在学习编程时,不能忽视对于编程软件的学习,对于有编程软件的足够的了解可能会让学习事半功倍。
如过文中存在错误,请大家不吝赐教!谢谢!