利用uVision5建立STM32F10x标准库工程

电子设计实践大作业开始在即,即使力学考试就在眼前,我仍然花费一段时间来调试这样的程序。
何等的敬业精神。
在使用uVision建立新工程的时候,我发现过程相对繁琐且缺乏条理。于是便整理过程如下。

本文依然无图(笑

下载STM32F10x 标准库

进入链接https://www.st.com/en/embedded-software/stsw-stm32054.html
下载即可。

新建工程

打开uVision5, 进入Project -> New uVision Project,
选择工程文件目录,选择使用的芯片型号即可。

拷贝库文件

在工程文件目录附近新建几个文件夹,如下

Doc
Libraries
    CMSIS
    STM32F10x_StdPeriph_Driver
Listing
Output
Project
    MDK
        xxx.uvprojx
User

其中CMSIS STM...是下载好的标准库文件中的同名目录,xxx.uvprojx是你刚刚新建的工程文件。

然后将标准库文件中的示例Template中的文件stm32f10x_conf.h stm32f10x_it.c stm32f10x_it.h文件复制到User目录下。
如果stm32f10x_it.c中有#include "main.h",删去。如果Systick中断函数中有内容,全部注释掉即可。

将文件添加到工程

打开uVision5, 选中魔术棒右边的一个按钮,添加分组Startup CMSIS STM32F10x_StdPeriph_Driver User DOc

然后,分别点击Add Files,将对应的所有可以找到的.c文件添加到相关分组。

注意,Startup分组中添加的是startup_stm32f10x_hd.s一个汇编文件。其位于arm目录下,
因为我们使用的是MDK的编译器,自然选择arm。

Option中设计工程

点开魔术棒,进行如下设置:

Target栏目中,设置芯片默认主频为8MHz,这里没有计入倍频。使用armcc5的编译器,在Code Generation中设置。

Output栏目中,选择目录为先前创建的Output目录。勾选Create HEX File便于以后的使用。Listing栏目同理。

C/C++栏目中,Define填入USE_STDPERIPH_DRIVER,不需要填入芯片型号,因为Keil为你自动添加过了,再次添加会无法编译通过。
这是不同于网上教程的一点。

接着,在Include Paths中填入所有你看到的含有.h文件的目录。

Debug栏目右上角,选择你使用的仿真器。

Utilities中选择Use Debug Driver,进入Settings,在Flash Download栏目中,检查Flash大小是不是与芯片实际大小一致。左翻进入Debug栏目,Port选择SW方式,Clock调整下载速度为1MHz。
然后确认退出即可。

总结

这个时候就可以加载LED测试代码检查是否配置完好了。

配置过程中心思想就是,uVision对你的代码结构一无所知,对你的芯片需求一无所知。
你需要做的就是,在Group中告诉它你是如何组织代码的,告诉它代码放在哪里。
在Include Paths中告诉它你的头文件放在哪里。
在魔术棒菜单中,告诉它你的芯片是如何工作的。

仅此而已的工作。