[其他ST产品] Keil安装芯片包、下载固件库、建立STM32工程模板

[复制链接]
 楼主| 丢丢手绢666 发表于 2023-12-21 16:29 | 显示全部楼层
  (2)打开 keil5 ,点击菜单:Project –>New Uvision Project 326356583f74d1ced0.png
 楼主| 丢丢手绢666 发表于 2023-12-21 16:29 | 显示全部楼层
   然后将目录定位到刚才建立的文件夹 Template 之下 955996583f75c69e0e.png
 楼主| 丢丢手绢666 发表于 2023-12-21 16:29 | 显示全部楼层
  在这个目录下面建立子文件夹 USER(我们的代码工程文件都是放在 USER目录) 192886583f769bc6a6.png
 楼主| 丢丢手绢666 发表于 2023-12-21 16:29 | 显示全部楼层
然后定位到 USER 目录下面,我们的工程文件就都保存到 USER 文件夹下面。工程命名为Template,点击保存 876256583f776294b2.png
 楼主| 丢丢手绢666 发表于 2023-12-21 16:30 | 显示全部楼层
接下来会出现一个选择 CPU 的界面,就是选择我们的芯片型号。如图下图所示,根据我们自己的开发板型号,选择对应的芯片,以 STM32F103ZET6 为例,所以在这里我们选择
STMicroelectronics → STM32F1 Series→ STM32F103 →STM32F103ZET6(如果使用的是其他系列的芯片,选择相应的型号就可以了,特别注意:一定要安装对应的器件芯片包 pack 才会显示这些内容,如果没得选择,请参考上边的内容安装芯片包。
954206583f786b3427.png
 楼主| 丢丢手绢666 发表于 2023-12-21 16:30 | 显示全部楼层
 楼主| 丢丢手绢666 发表于 2023-12-21 16:30 | 显示全部楼层
(3)点击 OK,MDK 会弹出 Manage Run-Time Environment 对话框,如下图所示 281216583f7a26f387.png
 楼主| 丢丢手绢666 发表于 2023-12-21 16:30 | 显示全部楼层
    这是 MDK5 新增的一个功能,在这个界面,我们可以添加自己需要的组件,从而方便构建开发环境,不过这里我们不做介绍。所以,我们直接点击 Cancel,即可得到如下图所示界面: 595716583f7b34389d.png    到这里,我们还只是建了一个框架,还需要添加启动代码,以及.c 文件等。
 楼主| 丢丢手绢666 发表于 2023-12-21 16:31 | 显示全部楼层
(4)现在我们看看 USER 目录下面包含 2 个文件夹和 2 个文件,如下图所示: 751336583f7c61c80b.png
 楼主| 丢丢手绢666 发表于 2023-12-21 16:31 | 显示全部楼层
这里我们说明一下:

                Template.uvprojx 是工程文件,非常关键,不能轻易删除;

                Listings 和 Objects文件夹是 MDK 自动生成的文件夹,用于存放编译过程产生的中间文件。这里,我们把两个文件夹删除,我们会在下一步骤中新建一个 OBJ 文件夹,用来存放编译中间文件。当然,我们不删除这两个文件夹也是没有关系的,只是我们不用它而已。
 楼主| 丢丢手绢666 发表于 2023-12-21 16:31 | 显示全部楼层
(5)接下来,我们在 Template 工程目录下面,新建 3 个文件夹 CORE,OBJ 以及
STM32F10x_FWLib。

                CORE 用来存放核心文件和启动文件;

                OBJ 是用来存放编译过程文件以及 hex 文件;

                STM32F10x_FWLib 文件夹顾名思义用来存放 ST 官方提供的库函数源码文件;

        已有的 USER 目录除了用来放工程文件外,还用来存放主函数文件 main.c,以及其他包括 system_stm32f10x.c 等等。
 楼主| 丢丢手绢666 发表于 2023-12-21 16:33 | 显示全部楼层
 楼主| 丢丢手绢666 发表于 2023-12-21 16:33 | 显示全部楼层
(6)下面我们要将官方的固件库包里的源码文件复制到我们的工程目录文件夹下面。打开官方固件库包,定位到我们之前准备好的固件库包的目录:
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 下面,将目录下面的src,inc 文件夹 copy 到我们刚才建立的 STM32F10x_FWLib 文件夹下面。src 存放的是固件的.c 文件,inc 存放的是对应的.h 文件,不妨打开这两个文件目录过目一下里面的文件,每个外设对应一个.c 文件和一个.h 头文件。
 楼主| 丢丢手绢666 发表于 2023-12-21 16:33 | 显示全部楼层
 楼主| 丢丢手绢666 发表于 2023-12-21 16:34 | 显示全部楼层
(7)下面我们要将固件库包里面相关的启动文件复制到我们的工程目录 CORE 之下。打开官方固件库包,定位到目录:
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport 下面,将文件 core_cm3.c 和文件 core_cm3.h 复制到 CORE 下 面 去 。 然 后 定 位 到 目 录
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 下面,将里面 startup_stm32f10x_hd.s (若你的开发板是 C8T6这里选择startup_stm32f10x_md.s,若你的开发板是 RCT6这里选择startup_stm32f10x_hd.s)文件复制到 CORE 下面。这里我们我之前已经解释了不同容量的芯片使用不同的启动文件,我们的芯片STM32F103ZET6 是大容量芯片,所以选择这个启动文件。
 楼主| 丢丢手绢666 发表于 2023-12-21 16:34 | 显示全部楼层
FLASH容量:
STM32F103ZET6  512K     STM32F10X_HD
STM32F103RCT6  256K    STM32F10X_HD
STM32F103C8T6  64K       STM32F10X_MD

小容量:FLASH≤32K
中容量:64K≤FLASH≤128K
大容量:256K≤FLASH、
 楼主| 丢丢手绢666 发表于 2023-12-21 16:34 | 显示全部楼层
            现在看看我们的 CORE 文件夹下面的文件:
977916583f890b393e.png
 楼主| 丢丢手绢666 发表于 2023-12-21 16:34 | 显示全部楼层
   (8)定位到目录:
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 下面将里面的三个文件 stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,复制到我们的 USER目录之下。然后将STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下面的 4 个 文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h 复制到 USER 目录下面。

990746583f89fd4c73.png
 楼主| 丢丢手绢666 发表于 2023-12-21 16:34 | 显示全部楼层
      (9)前面 8 个步骤,我们将需要的固件库相关文件复制到了我们的工程目录下面,下面我们将这些文件加入我们的工程中去。右键点击 Target1,选择 Manage Project Items
514406583f8ae11db2.png
 楼主| 丢丢手绢666 发表于 2023-12-21 16:35 | 显示全部楼层
     (10)Project Targets 一栏,我们将 Target 名字修改为 Template,然后在 Groups 一栏删掉一个 Source Group1,建立三个 Groups:USER,CORE,FWLIB。然后点击 OK,可以看到我们的 Target 名字以及 Groups 情况。

504086583f8be087bd.png

431336583f8c480673.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部