一,新建项目和文件夹
1.1 新建项目
STM32的STM32F103C8芯片项目创建请参考《51单片机STC89C52RC——创建Keil项目》
1.2 新建文件夹
我们根据自己的习惯在项目文件夹下创建5个文件夹(Core、Libs、Sys、Hardware、User)
Core文件夹:放STM32的核心引用文件(core_cm3.c,stm32f10x.h……)
Libs文件夹:放STM32已经封装好的模块(can、flash、gpio、i2c、usart……)
Sys文件夹:放我们自己写的系统性辅助操作模块(delay,math……)
Hardware文件夹:放我们自己写的功能模块(key、beep、oled……)
User文件夹:放入口主函数和主依赖(man.c、stm32f10x_it.h 、stm32f10x_it.c,stm32f10x_conf.h)
创建文件夹后的目录如下
二,固件下载与文件放入
2.1 固件下载
STM32下载地址 STM32最新固件库v3.5
2.2 文件放入
2.2.1 Core文件夹
1:拷贝 STM32最新固件库v3.5.zip\STM32最新固件库v3.5\Libraries\CMSIS\CM3\CoreSupport 下的 core_cm3.h和core_cm3.c
2:拷贝 STM32最新固件库v3.5.zip\STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 下的 system_stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h
3:拷贝 STM32最新固件库v3.5.zip\STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 这个路径下所有*.s文件
2.2.2 Libs文件夹
1:拷贝 STM32最新固件库v3.5.zip\STM32最新固件库v3.5\Libraries\STM32F10x_StdPeriph_Driver\src下的所有.c文件
2:拷贝 STM32最新固件库v3.5.zip\STM32最新固件库v3.5\Libraries\STM32F10x_StdPeriph_Driver\inc 下的所有.h文件
2.2.3 Sys文件夹
此文件夹是我们自己写的系统辅助程序,比如Delay,最初可为空。
2.2.4 Hardware文件夹
此文件夹是我们自己写的硬件模块程序,比如Key、OLCD、Beep等,最初可为空。
2.2.5 User文件夹
1:拷贝 STM32最新固件库v3.5.zip\STM32最新固件库v3.5\Project\STM32F10x_StdPeriph_Template 下的 stm32f10x_it.h、stm32f10x_it.c、stm32f10x_conf.h
2:在main.c中引入头文件 (没有main.c文件的就自己手动新建一个)
#include "stm32f10x.h"
三,分组管理
3.1 新建分组
对新建的组改成与开头创建的5个文件夹文件名相同 ,如下
3.2 分组管理
右键每一个组,添加已存在的文件
3.2.1 Core组
1:添加Core文件下所有的*.c和*.h
2:添加*md.s文件
3.2.2 其他组
添加对应文件夹下所有*.c和*.h ,注意选择文件类型
四,项目设置
打开“Options for Target”
4.1 确认芯片是否选择正确
4.2 编译选项选择
这里选择“User Default Compiler version5”
4.3 C编译参数和路径
1:Define 中输入 USE_STDPERIPH_DRIVER
原因是有这个条件编译
2:配置路径
Include Path 包含已经添加的5个文件夹
4.4 Debug配置
这里主要是配置调试环境下链接设备的方式,我这里用的是ST-Link Debugger
默认插上ST-Link系统会自动安装驱动,要是驱动没有安装成功。https://download.csdn.net/download/oopxiajun2011/89554222
4.5 Utilities 配置
需要勾上Reset and Run
这里是为了每次下载完代码后芯片自动重置启动。
五,编译和下载(烧写)
5.1 编译
第一次编译比较慢。
测试编译 【看你是否能一把过??0错误,0警告哦😊】
5.2 程序下载到芯片(烧写)
到这里,测试程序让芯片上的PIN13蓝色LED闪烁。
希望你可以一气呵成这个STM32模版项目。
项目源码请参考《STM32F103C8T6: 学习STM32F103C8T6》