STM32-使用固件库新建工程

参考链接: 【入门篇】11-新建工程—固件库版本(初学者必须认认真真看)_哔哩哔哩_bilibili
使用的MCU是STM32F103ZET6
这篇参考的是野火的资料,可以在“野火大学堂”或者它的论坛上下载。(我通常是野火和正点原子的资料混着看的T_T)

一、本地工程文件夹

首先,新建一个工程文件夹,如Template-Fwlib,并在此文件夹下新建4个文件夹,分别为Doc,Libraries,Project,User
其中,Doc中存放的是类似于readme之类的说明文件;Project暂时为空,它将在Keil5新建项目时用到。

Libraries文件夹

Libraries中的内容如下图所示:
在这里插入图片描述

其中,STM32F10x_StdPeriph_Driver就是野火的资料包中【固件库】文件夹里的对应内容直接复制来的,路径如下。

【固件库】STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver

CMSIS文件夹中包含以下下图所示内容,且均可以在下述【固件库】中的CMSIS路径中找到,包括startup文件夹,直接复制即可:
在这里插入图片描述

【固件库】STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS

上图startup文件夹里存的是固件库中startup文件夹中arm文件夹里的内容。

User文件夹

User文件夹中存放的是在这里插入图片描述
除了main.c,另外3个文件都是从以下路径中复制过来的。

【固件库】STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template

main.c是自己新建的一个源文件,记得要先写个空main入口放着,不然后面编译会报“找不到main函数”的错误。

#include"stm32f10x.h"

int main(void)
{
	
}

二、Keil5新建工程

以下内容大部分摘自野火的《零死角玩转STM32—F103霸道_V2》这本书。
Step1: 打开 KEIL5,新建一个工程,工程名根据喜好命名,保存在刚刚创建的Project文件夹下。新建了工程之后要选择MCU的型号,这里选的是STM32F103ZE。
Step2: 添加组文件夹及文件,添加结果如下图所示,文件在刚刚整的那几个本地工程文件夹下全能找到;

STARTUP 内容出自 Template-Fwlib\Libraries\CMSIS\startup
CMSIS 内容出自 Template-Fwlib\Libraries\CMSIS
FWLIB 内容出自 Template-Fwlib\Libraries\STM32F10x_StdPeriph_Driver\src
USER 内容出自 Template-Fwlib\User
DOC 内容出自 Template-Fwlib\Doc

在这里插入图片描述

配置魔术棒选项卡(Options for Target)

(1) Target 中选中微库“ Use MicroLib”,为的是在日后编写串口驱动的时候可以使用printf 函数。
(2) 在 Output 选项卡中把输出文件夹定位到我们工程目录下的“output”文件夹 (这步我没做,因为我没有新建output文件夹,所以保持的默认的), 如果想在编译的过程中生成 hex 文件(没记错的话这是用USB转串口烧录单片机的时候用的),就把 Create HEX File 选项勾上。
(3) 在 Listing 选项卡中把输出文件夹定位到我们工程目录下的“Listing”文件夹。 (这步我没做,因为我没有新建Listing文件夹,所以保持的默认的)

(4) 在 C/C++选项卡中添加处理宏及编译器编译的时候查找的头文件路径。如果头文件路径添加有误,则编译的时候会报错找不到头文件。
注释:Include Paths中设置头文件(如stm32f10x.h)的路径,否则Keil5默认会去软件安装路径下找头文件。
(添加结果如下图所示)
在这里插入图片描述
2024年1月10日补充说明,建议勾选C/C++栏目中的“C99 Mode”选项,不然可能会报关于变量声明的错误。

在Define里要添加STM32F10X_HD和USE_STDPERIPH_DRIVER两个宏:
STM32F10X_HD 宏:为了告诉 STM32 标准库,我们使用的芯片类型是 STM32型号是大容量的,使STM32标准库根据我们选定的芯片型号来配置;
USE_STDPERIPH_DRIVER 宏:为了让 stm32f10x.h 包含 stm32f10x_conf.h 这个头文件。

这样就新建完一个新的工程了,按F7或者左上角的图标(如下所示)可进行编译。
在这里插入图片描述
编译结果如图所示,则新建工程成功。
在这里插入图片描述
仿真器配置那块我跳过了,反正接了仿真器以后还得再整。

  • 23
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在将STM32f103RET6的KEIL5例程换成STM32f103ZET6时,需要更改以下内容: 1. 首先,需要修改芯片型号,可以在Project Options中找到Target,然后在Device中选择正确的芯片型号,即STM32f103ZET6。 2. 接下来,需要修改启动文件。启动文件是用来初始化芯片和设置中断向量的。在KEIL5中,启动文件通常是以.s结尾的汇编文件。你需要找到正确的启动文件,将其复制到你的工程目录下,并将其命名为startup_stm32f103zet6.s(假设你的芯片是STM32f103ZET6)。 3. 然后,打开启动文件,查找芯片型号和Flash大小的定义。修改它们以匹配你的芯片型号和Flash大小。 4. 最后,重新编译你的工程,并下载到芯片上进行测试。 需要注意的是,如果你的芯片有不同的外设或者引脚分配,你也需要相应地修改你的代码和配置文件以适应新的芯片。 ### 回答2: 将STM32f103RET6的KEIL5例程更换为STM32f103ZET6时,需要在KEIL5中更改一些东西。首先,启动文件可能需要进行一些修改。由于这两个芯片具有不同的引脚布局和外设配置,因此需要针对新的芯片类型进行适当的修改。具体来说,启动文件中与引脚和外设相关的初始化代码可能需要根据新的芯片类型进行更新。 其次,需要重新选择正确的芯片型号并设置对应的时钟频率。在KEIL5中,可以通过选择正确的设备型号来确保编译器正确地生成对应芯片的指令集。同时,也需要正确配置时钟频率,以确保芯片在正确的时钟信号下正常工作。 此外,还需注意许多硬件相关的配置,如外设的中断配置和GPIO引脚设置等。由于STM32f103RET6和STM32f103ZET6芯片具有不同的外设和GPIO引脚分配,因此需要进行确切的配置更改,以确保新的芯片类型与旧的例程相匹配。 总结来说,在将STM32f103RET6的KEIL5例程更换为STM32f103ZET6时,需要修改启动文件、选择正确的芯片型号和时钟频率,并进行硬件相关的配置。这样才能确保新的芯片类型能够在KEIL5中正常工作,并且与原来的例程一致。 ### 回答3: 把STM32f103RET6的KEIL5例程换成STM32f103ZET6,需要在KEIL5里更改一些东西。首先,需要更改启动文件,因为不同型号的芯片可能具有不同的Flash、RAM和外设的配置。启动文件需要根据新的芯片型号进行适配。然后,还需要在KEIL5的项目设置中更改芯片型号为STM32f103ZET6,以确保编译和烧录的正确性。 在进行这些更改之前,最好先备份原有的例程,以免丢失重要数据。在编译过程中可能会出现一些警告或错误,需要根据具体情况进行调试和修改。 另外,除了更改启动文件和芯片型号外,还需要检查和调整其他相关配置,包括时钟源、外设中断优先级、引脚复用设置等。这些配置可能因芯片型号的不同而有所变化,需要根据新的芯片型号进行适配。 总之,把STM32f103RET6的KEIL5例程换成STM32f103ZET6,需要更改启动文件和芯片型号,并根据新的芯片型号进行其他相关配置的调整。根据具体情况进行适配和调试,确保程序正确编译、烧录和运行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值