STM32学习一:那些MDK5的坑

来源:互联网 发布:linux 快速启动matlab 编辑:程序博客网 时间:2024/04/29 10:40

话说前阵研究了一会Arduino,并用它实现了一些简单的产品,如自制了一个PM2.5检测仪,由于可以选择任何传感器,我选择是口碑不错的攀藤PM7003,是一款检测精度较高的激光传感器,做出来的检测仪检测精度直逼数千甚至数万元的国外同类产品,这让一个原来主要接触软件开发的我似乎又看到了一个更为广阔的硬件世界,拿着榔头看哪都是钉子,我现在看到一个硬件就想它后面的技术原理微笑

当然,在研究Arduino的也过程当然也遇到了一些问题,比如它的MCU还是不够强大,接口不够丰富等,最主要的是我发现批量生产的产品大多数在用另一个平台——STM,该平台价格低廉,功能强大,商用产品无数,有关庞大的开发者,相比起来Arduino比较适合用来做非大批量的产品或产品原型,而STM32平台才是实现商用大批量产品的不二之选,也是为什么我开启了STM32的学习之路。

介绍完背景后就该开始学习了,看了一些视频教程介绍完其背景及一些基础知识,比如其属于ARM体系历史及结构、Cortex架构、STM32各系MCU特点等,接着该就是安装MDK并用其中的Keil uVision进行第一无输出程序的编写了。一般的教程都用的MDK4.12的版,而我在网上搜了一下,发现最新版本是5.22,嘿嘿,当然用新版本啊!正是这个举动让我入了不少坑,下面也是这些坑的记录。

1、新建项目没有相应的设备类型选择

安装后MDK5.22后就是打开Keil uVision并新建一个Project啊,这难道不是一般IDE的使用通则用?请慢,虽然是这样,但这个MDK5.22(或说uVision5)却不完全是这样,在新建项目中的Device是并没能STM32系列芯片供你选择,只有默认的ARM系列通用的设备,怎么不按套路出牌?视频教程里面明明不是这样!大笑


原来从MDK5开始设备类型需要通过Pack Installer来在线更新,也就是说要通过下面这个按键先安装设备包才能选择设备类型,你说是不是坑?


好吧,再吐槽一下这个Pack Installer的安装过程吧,反正我在刷新列表过程是数次中断,最后不得不通过VPN才勉强完成,天朝这网络环境啊,再次诅咒那个创建的GFW的教授闭嘴,另一个插曲是即使用VPN也不是所有的Packer都可以安装,从安装过程分析可知,这些Pack分别位于不同厂商的网站,从产品的角度(职业病又患了)来看这是很不好的体验,为了追求可扩展性将这些设备列表的更新分布到IDE不能自己控制的网站上,真不是一个明智的选择。


2、创建项目后没有自动添加启动文件

按说创建项目并选择设备类型后会让你选择是否添加启动文件(教学视频里这么演示的,呵),在写完main函数后就可以直接编译了,可这是MDK4的套路,MDK5不是这样的!在MDK5中,创建项目后不会让你选择是不添加启动文件,而应该在这里自己选择


别问我怎么找到的,作为一个初学者,我也是摸索了半天。

3、竟然不包括基本的头文件

设备也选择好了,启动文件也有了,这下总算可以编译了,嘿嘿,图样图森破……竟然提示“core_cm3.h”,这是几个意思?当然,最后我是通过在MDK的安装目录查找这个文件,并将其目录加入项目的include path才解决的。


这个比较奇怪,因为程序只是一个空的main函数,什么功能都没有 ,需要引用的头文件系统竟然不能自动带好。好了,程序终于可以可以编译了,即使连"Hello World!"都没输出。


以上几个问题特别是第三个问题算是比较奇葩了,作为初学者感觉坑不少,特此记录,如果能让其他学习者减少入坑的机会也算是不枉我敲字截图了。



2 0
原创粉丝点击