发新帖我要提问
123
返回列表
打印
[其他ST产品]

STM32官方固件库下载并且新建自己的工程

[复制链接]
楼主: 甲虫666
手机看帖
扫描二维码
随时随地手机跟帖
41
甲虫666|  楼主 | 2023-12-21 12:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
3、在工程中包含文件
3.1 打开Keil,新建工程,工程保存在Project文件夹下面

使用特权

评论回复
42
甲虫666|  楼主 | 2023-12-21 12:57 | 只看该作者
3.2 选择芯片,这里我们选择STM32F103RCT6

使用特权

评论回复
43
甲虫666|  楼主 | 2023-12-21 12:57 | 只看该作者

使用特权

评论回复
44
甲虫666|  楼主 | 2023-12-21 13:12 | 只看该作者
3.3 新建如图的4个分组,然后添加文件

startup添加文件如下,三个文件都位于Templete\Libraries\CMSIS目录下

使用特权

评论回复
45
甲虫666|  楼主 | 2023-12-21 13:13 | 只看该作者

使用特权

评论回复
46
甲虫666|  楼主 | 2023-12-21 13:13 | 只看该作者
Driver文件夹里面添加所有外设的源文件,文件路径Templete\Libraries\STM32F10x_StdPeriph_Driver\src,源文件里面是ST写好的各个外设的驱动

使用特权

评论回复
47
甲虫666|  楼主 | 2023-12-21 13:13 | 只看该作者

使用特权

评论回复
48
甲虫666|  楼主 | 2023-12-21 13:13 | 只看该作者
User文件夹里面添加文件如下

使用特权

评论回复
49
甲虫666|  楼主 | 2023-12-21 13:16 | 只看该作者
3.4 点击魔术棒,包含文件头路径

使用特权

评论回复
50
甲虫666|  楼主 | 2023-12-21 13:16 | 只看该作者
包含头文件路径如图

使用特权

评论回复
51
甲虫666|  楼主 | 2023-12-21 13:17 | 只看该作者
3.5 把main.c文件里面的内容删除,填入如下内容、
#include "stm32f10x.h"                 

int main(void)
{
        while(1)
        {
       
        }
}

使用特权

评论回复
52
甲虫666|  楼主 | 2023-12-21 13:17 | 只看该作者
3.6 对魔术棒所做的一些更改

3.6.1 因为 3.5 版本的库函数在配置和选择外设的时候通过宏定义来选择的,所以我们需要配置一个全局的宏定义变量。定位到魔术棒 c/c++界面,然后填写“STM32F10X_HD,USE_STDPERIPH_DRIVER”到 Define 输入框里面(请注意,两个标识符中间是逗号不是句号),这里解释一下,如果你用的是中容量那么STM32F10X_HD 修改为 STM32F10X_MD,小容量修改为 STM32F10X_LD,然后点击 OK。

使用特权

评论回复
53
甲虫666|  楼主 | 2023-12-21 13:17 | 只看该作者
STM32F10X_HD 宏:为了告诉 STM32 标准库,我们使用的芯片类型是大容量的,使 STM32标准库根据我们选定的芯片型号来配置。

使用特权

评论回复
54
甲虫666|  楼主 | 2023-12-21 13:17 | 只看该作者
USE_STDPERIPH_DRIVER 宏:为了让 stm32f10x.h 包含 stm32f10x_conf.h 这个头文件。

使用特权

评论回复
55
甲虫666|  楼主 | 2023-12-21 13:17 | 只看该作者

使用特权

评论回复
56
甲虫666|  楼主 | 2023-12-21 13:17 | 只看该作者
3.6.2 修改输出文件夹路径
打开魔术棒,把输出文件夹选择为我们创建的Output文件夹,顺便创建HEX文件勾选上,这样工程就能产生HEX文件

使用特权

评论回复
57
甲虫666|  楼主 | 2023-12-21 13:17 | 只看该作者

使用特权

评论回复
58
甲虫666|  楼主 | 2023-12-21 13:18 | 只看该作者
返回Project文件夹,可以看到,在新建了工程以后,里面多了如图的几个文件夹,其中,DebugConfig、Listings 和 Objects 文件夹是 MDK 自动生成的文件夹,Listings 和 Objects 用于存放编译过程产生的中间文件,DebugConfig 文件夹用于存储一些调试配置文件,我们把 Listings 和 Objects 这两个文件夹删除(DebugConfig 文件夹不可以删除),我们用Output文件夹来存放编译产生的中间文件

使用特权

评论回复
59
甲虫666|  楼主 | 2023-12-21 13:18 | 只看该作者

使用特权

评论回复
60
甲虫666|  楼主 | 2023-12-21 13:18 | 只看该作者
到这里,文件就新建好啦,点击编译,如图

636166583ca9c7a89c.png (270.63 KB )

636166583ca9c7a89c.png

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则