当前位置: 首页 > news >正文

STM32F407ZGT6--工程模版

STM32F407ZGT6新建工程

1. 下载固件库文件

进入浏览器,搜索意法半导体官网进入。

再点击**工具与软件 → 嵌入式软件 → STM32微控制器软件 **

在这里插入图片描述

切换页面,点击STM32标准外设软件库 → 点击右侧图片中的F4

在这里插入图片描述

进入页面,翻到最底下,再点击Get latest

在这里插入图片描述

后续经过一些系列填写邮箱和身份验证的操作,即可获得STM32F407的固件库文件。

解压完成的固件库文件内容如下:

在这里插入图片描述

2. 创建工程模版文件

2.1 新建基于标准库的文件

  • 建立存放工程的文件夹。
  • 打开打开 Keil 软件,点击 “Project - New μVision Project”,选择新建的文件夹,再新建一个文件夹存放本次工程,命名为 “1-1 工程模版”。
  • 给工程文件起通用名字 “project”,点击保存。
  • 选择器件型号为 “STM32F407ZG”,点击 OK。
  • 此时弹出新建工程小助手,暂不用可擦掉。工程建好后文件为空,需添加必要文件。

在这里插入图片描述

2.2 添加工程必要文件

2.2.1 User文件夹

首先把路径STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Project\STM32F4xx_StdPeriph_Templates中的下图选中的文件复制到User文件夹即可。

在这里插入图片描述

再把路径STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include中的两个文件复制到User文件夹,这样User文件夹中的文件就已经配置完成。

在这里插入图片描述

补充:

  • 其中后缀为it的为中端配置文件,用来存放中断函数。

  • 以system为开头的为系统时钟配置文件。

  • stm32f4xx_conf.h是用来配置库函数头文件的包含关系。

    • 这里面还有一个用来参数检查的函数定义。所有库函数都需要这个文件,它起到了协调和组织各个库函数头文件之间关系的作用。
  • stm32f4xx.h为外设寄存器描述文件。

    • 作用于51单片机头文件REGX52.H一样,用于描述STM32有哪些寄存器和其对应的地址。

2.2.2 Start文件夹

首先把路径STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm中的被选中的文件复制到Start文件夹中。

在这里插入图片描述

在找到路径为STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Include中的被选中的文件复制到Start文件中。

在这里插入图片描述

补充:

  • core开头的文件为包含了内核的描述文件,例如寄存器描述等。
  • startup开头的文件中是利用汇编语言编写的启动文件。
2.2.3 Library文件夹

首先将路径STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\STM32F4xx_StdPeriph_Driver中的两个文件夹全部复制到Library文件夹中。

在这里插入图片描述

补充:

  • 这两个文件夹中为F4芯片外设的驱动库。

2. 3 将文件添加进工程及设置头文件路径

现在需要将上述工程文件添加进Keil中新建的工程中去。

  1. 右击Target1,然后点击Manage Project Items…

在这里插入图片描述

  1. 进入新页面之后,点击红框中的按钮添加之前创建的三个文件夹。

在这里插入图片描述

  1. 点击Add Files添加文件,将之前从固件库中复制的工程文件添加进工程中来。

    • 注意:点击Add Files之后根据路径进入文件夹之后,只能看到**.c文件看,这里需要再重新调整文件类型,选择All files**即可看到所有文件看,再将文件全都添加进Group即可。在这里插入图片描述

    • 同时在添加Lirary文件夹中的文件时需要将stm32f4xx_fmc.c、stm32f4_fmpi2c.c和stm32f4_fsmc.c这个三个文件删掉,点击右上角红叉接口删除。因为STM32F407ZGT6没有FMC这个外设,不删掉后续编译程序会报错。在这里插入图片描述

  2. 设置头文件路径和添加全局宏定义标识

    • 按照下图顺序点击。在这里插入图片描述

    • 之后和添加文件一样,找到对应文件夹的路径一路点击添加即可。在这里插入图片描述

    • 接下来需要添加全局宏定义标识符,仍是在该页面底下,在 “C/C++”“Define” 栏目粘贴字符串**“STM32F40_41xxx,USE_STDPERIPH_DRIVER”**。在这里插入图片描述

2.4 一些需要注意的小事项

2.4.1 选择版本5的ARM编译器

在这里插入图片描述

2.4.2 注释掉一些代码

由于标准库存在以下bug,需要将**stm32f4xx.h(寄存器描述)**文件中这五行代码注释掉

注意:因为该文件处于只读状态,所以需要将文件夹的只读解除**(右键文件,点击属性,将只读勾选掉即可)**

在这里插入图片描述

2.4.3 选择debug

这里以常用的ST_LINK为例,点下拉框选择ST-LINK Debugger,然后选择Reset and Run,这样单击下载后可以自动复位执行程序。

在这里插入图片描述


到这对于STM32F407ZGT6的工程模版就已经配置完成了,接下来就可以进行对于STM32F407ZGT6这块芯片的开发了。

在这里插入图片描述

相关文章:

  • 10.2linux内核定时器实验(详细编程)_csdn
  • Windows环境下安装部署dzzoffice+onlyoffice的私有网盘和在线协同系统
  • 【USTC 计算机网络】第一章:计算机网络概述 - Internet、网络边缘、网络核心、接入网与物理媒体
  • 基于变分推理与 Best‑of‑N 策略的元 Prompt 自动生成与优化框架
  • 学习路之TP6 --重写vendor目录下的文件(服务覆盖command---优点:命令前后一致)
  • 在线 SQL 转 SQLAlchemy:一键生成 Python 数据模型
  • 谷歌Gemini 3大模型发布,AI领域再掀波澜!(2)
  • 如何通过 Airbyte 将数据摄取到 Elasticsearch
  • 【Linux我做主】基础命令完全指南上篇
  • 如何在 VS编译器上使用 C99规定的变长数组------使用Clang工具
  • 如何用URDF文件构建机械手模型并与MoveIt集成
  • LeetCode 解题思路 17(Hot 100)
  • 【GB28181】H265-Nalu的封装
  • 让双向链表不在云里雾里
  • 个人博客系统测试报告
  • AI 数字人短视频源码开发:开启虚拟世界的创意引擎
  • C#特性和反射
  • 定制开发开源 AI 智能名片 S2B2C 商城小程序源码在小程序直播营销中的应用与价值
  • 【NoSql】Redis
  • H3C无线控制器二层注册典型配置举例
  • 茅台总经理到访五粮液:面对白酒行业周期性调整,需要团结一心的合力
  • 中国驻美大使:远离故土的子弹库帛书正随民族复兴踏上归途
  • 莫高义在第四届中国新闻发言人论坛开幕式上的致辞
  • 新任重庆市垫江县委副书记刘振已任县政府党组书记
  • 3月中国减持189亿美元美债、持仓规模降至第三,英国升至第二
  • 上海黄浦江挡潮闸工程建设指挥部成立,组成人员名单公布