“jakecc” QuadCopter DIY进程帖 编号189
开始-》交易成功(收到烈火飞行器了 包装用心 飞行器质量没话说)
基础部分
基础实验
- STM32芯片开发环境的建立
- LED指示灯实验
- UART串口通讯实验
- PWM电机驱动实验
- NRF无线通讯实验
- 传感器驱动实验
高级实验
- 传感器数据融合
- 姿态解算
- 上位机软件
- PID控制
开发工程的问题
- 问题一
- 问题二
- 问题三
- 问题四
“jakecc” QuadCopter DIY进程帖 编号189
开始-》交易成功(收到烈火飞行器了 包装用心 飞行器质量没话说)
基础部分
基础实验
高级实验
开发工程的问题
从0开始建立一个STM32工程。不仅包括工程建立过程,还有Jlink设置方法。本文使用芯片为STM32F103CB。
1.打开keil
3.新建工程
工程名设为stm32_demo,选择芯片型号为STM32F103B,如图,
因为下载的stm32库中有启动代码,所以这里选择"否",不拷贝启动代码。
4.在工程文件下,新建Startup、Headers、User、Libraries、CMSIS、Lists、Output文件夹。
文件夹 |
用途 |
Startup |
启动文件,Flash在16~32Kb小容量,64~128Kb中容量,256~512Kb大容量 |
CMSIS |
Cortex微控制器软件接口标准文件,该目录下文件适用所有Cortex系列 |
Libraries |
存放stm32的驱动库文件 |
Headers |
自定义的全局头文件 |
User |
用户文件,我们把main.c放在该目录下 |
Lists |
编译过程中产生的文件 |
Output |
编译后输出文件,hex/bin等可执行属性的文件将保存在该目录下 |
至此,stm32的烈火工程文件结构如下
5 库文件拷贝把下载stm32库中文件拷贝到新建工程中
stm32F10x的官方库 |
工程 |
Libraries\STM32F10x_StdPeriph_Driver\inc库头文件 Libraries\STM32F10x_StdPeriph_Driver\src库源文件 |
Libraries |
Project\STM32F10x_StdPeriph_Template\main.c Project\STM32F10x_StdPeriph_Template\stm32f10x_it.c中断函数文件 |
User |
Project\STM32F10x_StdPeriph_Template\stm32f10x_it.h中断函数头文件 Project\STM32F10x_StdPeriph_Template\stm32f10x_conf.h配置文件 |
Headers |
Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\*启动文件 |
Startup |
Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\ system_stm32f10x.c Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h |
CMSIS |
Libraries\CMSIS\CM3\CoreSupport\core_cm3.cCortex-M3系统文件 Libraries\CMSIS\CM3\CoreSupport\core_cm3.h |
CMSIS |
文件拷贝完成后的工程文件目录结构如下: