话说前阵研究了一会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系列通用的设备,怎么不按套路出牌?视频教程里面明明不是这样!