使用Keil uVersion MDK 5自带的CMSIS Driver建立STM32工程

Keil uVersion MDK 5.0 建立STM32工程,不需新建文件夹,拷贝标准函数库等操作。但该工程仅限自己使用。

1. 建立工程目录:

 
Paste_Image.png

用于存放工程。

2. 新建工程:

 
Paste_Image.png

找到刚刚的位置, 给一个项目名字:

 
Paste_Image.png

保存。

选择芯片类型:

 
Paste_Image.png

没找到,说明你没有安装STM32的芯片包,要去官网下载一下咯。

项目配置:

这里很重要,选择一些必要的内容,否则,工程将出现错误。

必要的主要是以下部分:

 
Paste_Image.png

这两项不选,应该不能用。

其他配置:

根据自己的需要进行配置。

假如你选择的有问题,将会有提示:

 
Paste_Image.png

根据提示,选上就对咯。

我的最基本配置:

 
Paste_Image.png

Drivers下面,按需选择咯,但是要注意,需要GPIO、DMA等支持:

 
Paste_Image.png

工程成型:

 
Paste_Image.png

Drivers的错误问题解决:

刚刚建立好工程,如果你使用了CMSIS Drivers,如果你恰巧还是比较旧的版本,比如说Keil.STM32F1xx_DFP.1.1.0.pack,你会发现,有部分头文件找不到,尤其是UART_STM32F10x.h,这是keil 5比较坑的地方。

如下是我的经过:

我增加了Driver的相关组件,但是头文件都找不到,出现如下错误:

 
Paste_Image.png

'Driver_I2C.h' file not found.

诧异之余,只能找到增加路径了:

 
Paste_Image.png

实际这些头文件在这里,所以在target里增加路径:

 
Paste_Image.png
 
Paste_Image.png
 
Paste_Image.png

增加依赖,根据安装目录决定。

这个时候就解决这个问题了。

还有一个很大的坑:

Driver增加的是UART,但实际上,keil已经更改为USART,所以即便是增加了上述的路径,还是错的。
解决办法:

更新pack:
http://www.keil.com/dd2/Pack/#/eula-container
这里找到自己需要的pack,下载更新了。

重建工程,就没有这种问题了,国内很早就发现,但是,很多人是盗版的,根本没机会提交给keil去修改,所以有一段时间这个没法用,现在已经更新好了。

STM32的CMISIS Drivers使用方式

增加了相关驱动之后,你会发现,还是不能用,抛出对应于每个驱动的未定义宏错误:
如I2C: "I2C not configured in RTE_Device.h!"
SPI的:"SPI not configured in RTE_Device.h!"
最坑的USART/UART: "USART not configured in RTE_Device.h!"

 
Paste_Image.png

以及诸如此类的错误,这是因为,驱动是给这一系列所开发的,你必须要根据你的芯片,修改RTE_Device.h文件。

我是用的是STM32F103RBT6,我需要按照这个芯片所具有的外部硬件资源,去打开相应的模块定义,就是修改对应宏值为1就可以了。

修改方法是,直接去RTE_Device.h里面修改,把对应模块的值修改为1就可以了。一定不要弄错了,修改的是芯片具有的,或者只修改自己所需要的。

 
Paste_Image.png

Hello STM32完毕



作者:heguorui
链接:https://www.jianshu.com/p/482ff2dedb15
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

posted on 2020-04-12 10:55  一郎哥哥  阅读(8617)  评论(0编辑  收藏  举报

导航