一。开发环境和固定库版本
二。准备工作
三。建立工程模板
1. 建立一个template的文件夹
2.在template文件夹下建立下面3个文件夹
core 用来存放核心文件和启动文件, obj 是用来存放编译过程文件以及 hex 文件, stm32f10x_fwlib 文件夹顾名思义用来存放 st 官方提供的库函数源码文件。user 目录除了用来放工程文件外,还用来存放主函数文件 main.c,以及其他包括 system_stm32f10x.c 等等。
3. 在stm32f10x_stdperiph_lib_v3.5.0librariesstm32f10x_stdperiph_driver 下面,将目录下面的 src,inc 文件夹 copy 到stm32f10x_fwlib 文件夹下面。
src 存放的是固件库的.c 文件,inc 存放的是对应的.h 文件。
4. 下面我们要将固件库包里面相关的启动文件复制到我们的工程目录 core 之下。
打开官方固件库包,定位到目录stm32f10x_stdperiph_lib_v3.5.0librariescmsiscm3coresupport 下面,将文件 core_cm3.c和文件 core_cm3.h 复制到 core 下 面 去 。
然 后 定 位 到 目录stm32f10x_stdperiph_lib_v3.5.0librariescmsiscm3devicesupportststm32f10xstartuparm 下面,将里面 startup_stm32f10x_hd.s 文件复制到 core 下面。
不同容量的芯片使用不同的启动文件,芯片 stm32f103zet6 是512k大容量芯片,所以选择startup_stm32f10x_hd.s这个启动文件。
core文件夹下的文件
5.往user文件夹下拷贝一些头文件和源文件
定位到目录:
stm32f10x_stdperiph_lib_v3.5.0librariescmsiscm3devicesupportststm32f10x 下面将里面的三个文件 stm32f10x.h, system_stm32f10x.c, system_stm32f10x.h,复制到我们的 user目录之下。
然后将
stm32f10x_stdperiph_lib_v3.5.0projectstm32f10x_stdperiph_template 下面的 4 个 文件
main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h 复制到 user 目录下面。
user目录下文件
6.新建工程
(1)将工程保存在user目录下,cpu选择
(2)在文件分组中分别添加文件
7.选择编译后的文件输出到obj文件夹中
8.添加宏定义标识符
9.添加头文件目录
10.因为main.c文件是从固件库中copy过来的,所以把main.c中不用的语句全部去掉,添加进下面的程序,另外注意最后一行要多出一个空行,否则有警告。
#include “stm32f10x.h”
void delay(u32 count)
{
u32 i=0;
for(;i
}
int main(void)
{
gpio_inittypedef gpio_initstructure;
rcc_apb2periphclockcmd(rcc_apb2periph_gpiob|
rcc_apb2periph_gpioe, enable); //使能 pb,pe 端口时钟
gpio_initstructure.gpio_pin = gpio_pin_5; //led0--》pb.5 端口配置
gpio_initstructure.gpio_mode = gpio_mode_out_pp; //推挽输出
gpio_initstructure.gpio_speed = gpio_speed_50mhz; //io 口速度为 50mhz
gpio_init(gpiob, &gpio_initstructure); //初始化 gpiob.5
gpio_setbits(gpiob,gpio_pin_5); //pb.5 输出高
gpio_initstructure.gpio_pin = gpio_pin_5; //led1--》pe.5 推挽输出
gpio_init(gpioe, &gpio_initstructure); //初始化 gpio
61
gpio_setbits(gpioe,gpio_pin_5); //pe.5 输出高
while(1)
{
gpio_resetbits(gpiob,gpio_pin_5);
gpio_setbits(gpioe,gpio_pin_5);
delay(3000000);
gpio_setbits(gpiob,gpio_pin_5);
gpio_resetbits(gpioe,gpio_pin_5);
delay(3000000);
}
}
编译,成功!红色led和绿色led交替闪烁
11. 给工程模板添加战舰开发板的系统函数文件,包括delay,sys,usart方便今后调试程序。
原来程序中使用的延时函数是不精确的,可以使用原子开发的delay函数进行精确延时。
星闪性能卓越,对蓝牙芯片行业有什么影响?
PI推出新一代CAPZeroTM-3X电容放电IC,用于降低家电的待机功耗
变频器串行通讯怎么使用
远程无线充电技术或成iPhone8的最大变革
简单剖析已立项制定标准的ADAS功能,以及其在国内的技术状况
如何创建一个STM32工程模板
一文详解CMP设备和材料
整流二极管怎么测量_如何用万用表检测整流二极管的好坏
晶导微电子授权世强硬创代理分立器件,聚焦LED照明等领域发力
2018年中国锂电池隔膜出货量20.2亿平米,同比增长39.7%
线性稳压器的基础-优点和缺点、应用
关于直流无刷电机的换相和PWM信号的分配
如何通过分片实现区块链的扩展
英创信息技术ESM335x扩展总线中断智能块读写
dfrobotW5500以太网主控器简介
路由协议&OSPF中双点双向重发布解决路由引入问题(华为)
小米笔记本Air8代酷睿i7增强版评测 性价比更高
基带信号仿真方法上篇
媒体硬盘播放器视频输出/音视输出/音视频端口
14项领先世界科技成果出炉,华为5G、北斗导航当仁不让