STM32标准库新建工程步骤配置

1.新建工程

建立存放工程文件夹:

Keil中新建工程

找到建好的存放工程文件的文件夹,再新建一个本次工程的文件夹,点进去,

然后给工程文件起一个通用的名字Project ,2是建好之后的样子:

接下来就到了选择自己使用的STM32型号:

2.添加工程必要文件

工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹

(1)Start文件夹里添加启动文件,STM32程序是从启动文件开始执行的:

STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm目录下添加如下文件到Start文件夹里

将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

目录下的外设寄存器描述文件(stm32f10x.h该文件是用来描述STM32有哪些寄存器和它对应的地址的)及另外两个system文件(用来配置时钟)添加到Start文件夹里

因为STM32是内核和内核外围的设备组成的,而且内核寄存器描述和外围寄存器描述文件不在一起,所以需要添加内核寄存器描述文件在STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport目录下:

到此为止工程的必要文件Start启动文件就复制完成了,结果如下:

(2)工程里对应建立Start同名称的分组,然后将文件夹内的文件添加到工程分组里

将默认的Source Group1改成Start,右键Start文件夹 选择添加已存在的文件添加到组里

打开Start文件夹,把文件过滤器改为所有文件类型,首先添加启动文件,根据我们当前机器选择为后缀为md.s的启动文件,点击Add添加,然后将剩下的.c和.h文件都添加进Start文件夹

都添加之后的Start文件夹内容如下:

最后还需要再工程选项里添加这个文件夹的头文件路径,使软件可以根据路径找到.h头文件:

依顺序依次点击魔术棒按钮、C/C++、在Include Paths里添加Start文件夹路径

(3)在User里新建一个main函数,检查工程是否可行

在Target位置右键添加组(Add Group),更名为User

在User上右键,点击添加新文件,选择C文件,命名为main:

最下面路径需要注意,选择为User文件夹,不然默认是放在文件夹外

在main.c里,右键插入头文件,选择stm32f10x.h

写一个while死循环语句

注意文件最后一行必须为空行,不然会报警告。

点击箭头1处编译 查看输出为0警告0错误则必要文件配置好了

如果是基于寄存器开发STM32,工程建到这里就可以了!!!

点击扳手图标,设置编码格式改为UTF8,可以防止中文乱码问题,如果打开别人的工程出现中文乱码也可以修改这里:

(4)配置调试器

点击魔术棒按钮,选择Debug,默认调试器为ULINk,修改为STLINK

然后再点击Settings,在Flash Download里勾选Reset and Run这一项,这会省去按复位按钮的步骤,在下载程序后会立马复位并执行,方便很多

此时再次点击编译,然后点击LOAD按钮,程序会下载到STM32里,此时板子上的灯灭,因为当前并没有程序,只是一个死循环。

3.为工程添加库函数,使用库函数操作

(1)存放库函数的文件夹为Library文件夹,将如下路径下的库函数文件

STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src

添加到Library里,其中misc.c为内核的库函数,其他的就是内核外的外设库函数:

再将如下路径的库函数头文件也添加到Library中:

STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc

在Keil软件Target1中添加组(Add Group)为Library,右键添加已存在的文件,打开Library文件夹,Ctrl+A全选,Add添加到Library中:

(2)此时库函数虽然配置好了,但是包含关系还没有配置完毕,还有中断函数

在路径:

STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template

找到如下三个文件,复制之后粘贴到User文件夹内:

其中conf(configuration)文件是用来配置库函数头文件包含关系的,另外这里面还有用来参数检查的函数定义,是所有库函数需要的,两个it(interrupt)文件是用来存放中断函数的。

粘贴到User文件夹内:

此时需要再Keil软件的User组里把上面三个文件添加进来:

最后需要一个宏定义:

在头文件上右键打开文件,滑到最下面,然后添加# ifdef后的字符串在:

然后打开工程选项,在C/C++的Define栏目粘贴这个字符串

再将所有的头文件包括User和Library目录的路径也都添加上:

这样基于库函数的固件库就配置好了!!!

编译查看不出错就好了,可以在main文件中编译需要的程序了。

例如:

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐凤年_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值