利用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中告诉它你的头文件放在哪里。
在魔术棒菜单中,告诉它你的芯片是如何工作的。
仅此而已的工作。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!