新建项目
可以用STM32CubeMx通过图形、选项式生成HAL库的基本外设配置 也可以用标准外设库StdPeriph_Lib。标准库ST已经宣布停止更新了
一、新建项目文件夹
- 创建一个项目文件夹如
myproject,并创建其子文件夹User,Libraries,Application。并在Libraries目录下再新建CMSIS子文件夹; - 打开
STM32F10x_StdPeriph_Lib_V3.6.0文件夹; - 将
\Project\STM32F10x_StdPeriph_Template中的main.c,stm32f10x-conf.h,stm32f10x_it.c,stm32f10x_it.h,复制到User文件夹。system_stm32f10x.c先不用复制;User文件夹粘贴完成后如下图所示:
- 回到
STM32F10x_StdPeriph_Lib_V3.6.0目录下,进入Libraries文件夹。将整个STM32F10x_Stdperiph_Driver复制到Libraries文件夹,也可以根据需求裁剪; - 回到
\Libraries目录下,进入\CMSIS\CM3\CoreSupport文件夹。将core_cm3.c,core_cm3.h复制到myproject\Libraries\CMSIS; - 回到
\CM3目录下,进入DeviceSupport文件夹。一直进入第一个文件夹,直到进入arm文件夹。将对应容量的启动文件复制到myproject\Libraries\CMSIS;
容量
|后缀|英文全称|核心含义|Flash 容量划分| |:-😐:-😐:-😐:-😐 |ld|Low density|低密度型|8KB ~ 32KB| |cl|Compact|精简型 / 紧凑型|16KB ~ 32KB| |md|Medium density|中密度型|64KB ~ 128KB| |hd|High density|高密度型|128KB ~ 512KB| |xl|Extra large density|超大容量型|512KB ~ 2048KB(2MB)| value line 就是对应版本的成本优化版,一般是砍外设
- 回到
\STMF10x目录下。将stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h文件复制到myproject\Libraries\CMSIS;CMSIS文件夹粘贴完成后如下图所示:
- 建议保存一个模板文件夹,下次新建工程就可以直接复制。不过要注意startup文件要根据芯片容量更换。
二、新建项目文件
- 打开uVision;
- 点击
project并选择New Project;
- 选择步骤一中新建的项目文件夹;
- 输入项目名称并点击保存;

这里新建项目后项目文件夹应如下图所示:

- 选择软件包并点击OK(软件包需要提前安装,可在菜单栏的这里选择芯片组);

- 在随后弹出的窗口选择Cancel;

- 点击菜单栏的文件夹管理图标;

- 删除
Source Group 1;
- 依次新建
User,Application,StdPeriph_Driver,CMSIS,StartUp文件组;
- 在
User中添加main.c,stm32f10x_it.c


- 重复第十步,为
StdPeriph添加需要的外设库,如GPIO,RCC等;
- 重复第十步,为
CMSIS添加core_cm3.c,system_stm32f10x.c;
- 重复第十步,直到进入
CMSIS文件夹后发现没有startup_stm32f10x_**.s文件。此时选择文件类型为All files,再添加对应启动文件;

- 点击
OK; - 点击菜单栏的“魔法棒”图标弹出如下窗口;

- 点击
C/C++选项卡,在Define栏中输入STM32F10X_**, USE_STDPERIPH_DRIVER。**指代对应的芯片容量;
- 点击
Include Paths,弹出如下窗口;

- 依次添加各个有头文件的文件夹,添加完后点击
OK;

三、其余设置
- 在“魔法棒”窗口中,选择
Output窗口,勾选Create HEX File。这个16进制文件可以用于串口上传程序;
- 在
Debug选项卡,可以点击右上角的选项框选择仿真调试和上传程序的方式;
- 点击
Setting弹出以下窗口;

- 点击
Flash Download,勾选Reset and Run,点击确定;
- 在“魔法棒”窗口点击
OK后展开左侧Project栏,点击进入main.c,应该能得到如下结果;
- 删掉22行以后的代码,只保留
#include stm32f10x.h。重写main函数
int main()
{
while(1)
{
}
}
- 点击菜单栏“单箭头压箱子”的
Build图标,等待一小会后查看Build Output栏中的输出结果。0 Error(s), 0 Warning(s).说明新建的项目基本上没啥问题;
如何配置时钟以及其他外设,详见STM32