第一讲 STM32新建工程
一、stm32的开发方式
- 基于寄存器(由于stm32较为复杂不推荐此方法)
- 基于标准库(寄存器封装较好)
- 基于HAL库(快速上手无法了解底层逻辑)
本次学习将采用标准库的方式来学习
二、库函数
- 打开固件库
- Libraries中的就是库函数的文件
- Project是官方提供的示例(可以为使用库函数做参考)
- Utilities是测试电路文件
三、新建文件夹
1、建立启动文件夹
- 打开Kiel 5,点击新建工程
- 创建文件夹STM32 ——2-1 STM32工程模板,创建Project工程文件
- 打开固件库(以下为需要的启动文件路径)STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
- 将arm文件夹内的文件复制,并在工程模板文件夹内创建start文件夹粘贴
- 在STM32F10x文件夹中存放了stm32f10.h和两个system文件,前者为STM32的外设寄存器描述文件(类似于51单片机的头文件),后者主要用于配置时钟。将他们复制到start文件夹中
- 由于STM32是由内核和外围的设备组成,且不存放在一起,所以需要添加内核寄存器的描述文件,在固件库中按以下路径找到文件,并复制粘贴到start文件夹中
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport
2、添加启动文件
- 选中source group1文件夹,点击文件夹前面的图标,更改名字为start文件夹,右击添加已经存在的文件,将原来start文件夹中的startup_stm32f10x_md.s,core_cm3.c,core_cm3.h,stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h文件添加其中(这些文件只读文件,无法修改其中的内容)
- 点击魔法棒按钮,在c/c++中的Include Path中添加start文件夹(这样就可以保证头文件的路径)
- 新建User文件夹,创建main.c文件
- 工程选项,C/C++,Define内定义USE_STDPERIPH_DRIVER(使用库函数必须定义)
- 写入一下代码
1 |
|
3、启动文件分类
缩写 | 释义 | Flash容量 | 型号 |
---|---|---|---|
LD_VL | 小容量产品超值系列 | 16-32k | STM32F100 |
MD_VL | 中容量产品超值系列 | 64-128k | STM32F100 |
HD_VL | 大容量产品超值系列 | 256-512k | STM32F100 |
LD | 小容量产品 | 16-32k | STM32F101/102/103 |
MD | 中容量产品 | 64-128k | STM32F101/102/103 |
HD | 大容量产品 | 256-512k | STM32F101/102/103 |
XL | 加大容量产品 | 大于512k | STM32F101/102/103 |
CL | 互联型产品 | - | STM32F105/107 |
四、新建工程各文件作用
- start_xx.s:复位中断,相当于程序的入口,调用Systeminit,这个函数定义在system_xx.c/.h里面,设置微控制器的启动,初始化嵌入式闪存接口、锁相环、更新系统内核的时钟变量。(在main函数启动之前全部执行)。还有其他中断的调用。
- stm32f10_it.c/.h:定义中断处理函数
- stm32f10x.h:外设寄存器描述
- core_cm3.c/.h:内核寄存器描述
- misc.c/.h,stm32f10x_adc.c/.h···:库函数
- stm32f10x_conf.h:库函数配置
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 青竹小站!