单片机01天_stm32f407zg_创建新工程

创建“寄存器版工程”

1、创建工程文件夹

创建工程文件夹“Project”,内部包含文件夹“CMSIS”&&“USER”。

CMSIS:Cortex系列内核接口驱动文件。

USER:存放用户编写的程序文件。

“USER”文件夹内包含“Inc”&&“Src”。

在“存放用户自己编写的程序文件”的文件夹下再建立两个分类文件夹并自定义命名,

Src:用于存放“C源程序文件”

Inc:存放“源程序文件对应的头文件”

2、准备工程文件

固件库可从网址:www.stmcu.org.cn下载。

 ①把固件库中“Libraries”文件夹下的“CMSIS”文件夹中的“Include”(Cortex系列内核接口驱动文件对应的头文件)文件夹复制到工程,存放到CMSIS文件夹下。

 ②把“STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include文件夹下”的“stm32f4xx.h(STM32F40x芯片工程头文件)”和“system_stm32f4xx.h”(系统时钟头文件)文件复制到工程,存放到CMSIS。

③把“\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm”文件夹下的“startup_stm32f40_41xxx.s”(STM32F40x芯片启动文件)文件复制到工程,存放CMSIS文件夹下。

④把“\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates”文件夹下的“system_stm32f4xx.c”(系统时钟源程序文件)文件复制到工程,存放CMSIS文件夹下。

1.

打开Keil软件,在“Project”菜单栏下选择“New μVision Project”命令新建一个工程,并对工程进行自定义命名(工程名不需要后缀名)后保存到新建的工程文件夹下。

2.

根据工程使用的芯片,选择具体对应的芯片信号(STM32F407ZGTx)。

3.

配置工程选项(点击“工具栏”中“品字形”按钮)

        ①第一列为工程的名称,双击可以更改工程名称或工程版本号。

        ②第二列为工程组别,点击“新建(New)”按钮创建两个工程分组,并自定义命名。两个工程分组分别是“内核接口组(建议命名CMSIS)”和“用户组(建议命名USER)”。

        ③第三列为工程组相关联文件。

        ④内核接口组:点击“ADD File”按钮,把存放在“Cortex系列内核接口驱动文件CMSIS”的文件夹下的“startup_stm32f40_41xxx.s(启动文件)”和“system_stm32f4xx.c(系统时钟文件)”添加到“内核接口组”中。然后点击OK.

4.

设置工程参数(点击“工具栏”中“魔术棒”按钮)

        ①Output选项卡:勾选“Create HEX File”选项。

        ②C/C++选择卡:

                1)在“Define”栏中填入“STM32F40_41xxx”。主要是为了告诉编译器,工程使用哪一款主控芯片,在选择芯片的头文件中,执行相应的程序。STM32F40_41xxx

                2)在“Include Paths”栏中设置Keil软件头文件的查找路径。

                        .\ CMSIS\Include

                        .\ CMSIS

                        .\USER\Inc

                3)Debug选项卡:设置调试相关的调试器硬件型号(ST-LINK Debugger)。

                4)Utilities选项卡:去掉勾选“Use Dubug Driver(软件仿真功能)”选项,并选择对应的硬件仿真器型号(ST-LINK Debugger)。然后在“Settings”选项中勾选“Reset and Run”选项。

                5)如果窗口界面不小心删除或者找不到,可以选择恢复界面显示。

3、新建工程文件
  1. 点击“工具栏”中“新建文件”的命令图标或在“File”菜单栏中选择“New”命令来新建一个工程文件。
  2. 把新建的工程文件按照文件的类别保存到“用户自己编写的程序文件夹”下的相应文件夹中,并自定义命名,命名时需要添加文件的相关后缀名(源文件的后缀名为.c,头文件的后缀名为.h)。
  3. 把新建个工程源文件关联到工程相应的组别中。

注:工程中只需要关联源文件,头文件不需要关联,但必须把头文件保存到指定的路径文件夹下。STM32F40x系列工程头文件为“stm32f4xx.h”。点击“Build”图标为编译工程修改过的地方(第一次编译时,会编译整个工程);“Rebuild”图标为重新编译成功工程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/692530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

陶陶摘苹果C++

题目&#xff1a; 代码&#xff1a; #include<iostream> using namespace std; int main(){//一、分析问题//已知&#xff1a;10 个苹果到地面的高度a[10],陶陶把手伸直的时候能够达到的最大高度height//未知&#xff1a;陶陶能够摘到的苹果的数目sum。//关系&#xff…

《Solidity 简易速速上手小册》第2章:搭建 Solidity 开发环境(2024 最新版)

文章目录 2.1 安装和配置 Solidity2.1.1 基础知识解析安装 Solidity 编译器配置开发环境熟悉命令行工具 2.1.2 重点案例&#xff1a;配置本地开发环境案例 Demo&#xff1a;配置本地 Solidity 环境案例代码&#xff1a;HelloWorld.sol 2.1.3 拓展案例 1&#xff1a;设置 Remix …

【MySQL】Navicat/SQLyog连接Ubuntu中的数据库(MySQL)

&#x1f3e1;浩泽学编程&#xff1a;个人主页 &#x1f525; 推荐专栏&#xff1a;《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》 &#x1f6f8;学无止境&#xff0c;不骄不躁&#xff0c;知行合一 文章目录 前言一、安装…

Burp常见问题

前言 本文举例了几个常见的软件工具使用问题&#xff0c;文末会提供一些我自己整理和使用的工具资料 。 "在追逐零 Bug 的路上&#xff0c;我们不断学习、改进&#xff0c;更加坚定自己的技术信念。让我们相信&#xff0c;每一个 Bug 都是我们成长的机会。" 一、VM…

2 F. Greetings(离散化+树状数组)

题目链接 F. Greetings 题意 题解 由于两个人的速度是一样的&#xff0c;所以到达终点之前两个人是不会相遇的&#xff0c;考虑一下什么情况两个人会相遇&#xff0c;其中一个人到达终点时&#xff0c;另一个人&#xff0c;终点所在地的前面&#xff0c;并且它的终点在更右边…

模式匹配这么好,Java语法里有吗?

这篇文章我们借助新版Java来理解模式匹配&#xff0c;Rust版的模式匹配稍后就端上来&#xff0c;各位先尝尝Java这杯老咖啡还香不香&#x1f604;。 什么是模式匹配&#xff1f; 下图直观的表达了模式匹配的概念。 所谓模式类似上图中木盒的各种形状的洞洞&#xff0c;我们…

Unable to make field private JavacProcessingEnvironment$DiscoveredPro报错解决办法

maven项目打包报错 报错信息 Unable to make field private com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors com.sun.tools.javac.processing.JavacProcessingEnvironment.discoveredProcs accessible: module jdk.compiler does not &q…

2.20总结

根据这周的学习任务在学习KMP算法和哈希算法,这两种算法主要都用于字符串&#xff0c;而且学习起来都有一定的难度&#xff0c;刚开始的时候一个视频要看好几遍才能弄懂&#xff0c;但是经过这两天的学习也有了一定的收KMP 我通过一小段简单的代码来强化我对于KMP算法的理解&a…

阿里云服务器多少钱?2024年阿里云服务器价格配置表出炉!

2024年阿里云服务器租用价格表更新&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年&#xff0c;轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服…

jmeter 命令行启动 动态参数化

[Jmeter命令行参数] 一、在linux中&#xff0c;使用非gui的方式执行jmeter。若需更改参数&#xff0c;必须先编辑jmx文件&#xff0c;找到对应的变量进行修改&#xff0c;比较麻烦。因此&#xff0c;可以参数化一些常用的变量&#xff0c;直接在Jmeter命令行进行设置 二、参数…

尚硅谷ES基础 - RESTful JSON基本概念倒排索引HTTP

RESTful & JSON REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。 Web 应用程序最重要的 REST 原则是&#xff0c;客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。…

自动驾驶中之定位总结

1 前言2 典型的单个定位方式2.1 基于通信的定位方法2.1.1 GNSS 全球卫星导航系统2.1.1.1 gnss的优点与缺点2.1.1.2 gnss定位技术2.1.1.2.1 RTK定位技术2.1.1.2.2 PPP定位技术 2.1.1.2 gnss定位技术总结 2.1.2 车联网定位 2.1 基于航位推算的定位方法2.1.1 惯性测试单元定位IMU2…

Microsoft Office Visio 2007中绘制大括号

文章目录 一、Microsoft Office Visio 2007中绘制大括号 一、Microsoft Office Visio 2007中绘制大括号 在Microsoft Office Visio 2007中绘制大括号的方法如下&#xff1a; 打开Visio 2007——文件——形状——其他Visio方案——标注 此时左侧栏中出现“标注”栏&#xff0c…

代码随想录刷题笔记-Day21

1. 二叉搜索树中的插入操作 701. 二叉搜索树中的插入操作https://leetcode.cn/problems/insert-into-a-binary-search-tree/给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和要插入树中的值 value &#xff0c;将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。…

Discuz! X收藏列表页调用封面图片详细教程

Discuz! X默认收藏列表不显示封面图&#xff0c;我们接到客户需求要开发封面图功能在帖子列表&#xff0c;这是我们整理好的详细教程&#xff0c;下载即可查看 修改后&#xff0c;显示封面的收藏列表截图&#xff1a; 详细开发教程下载地址&#xff1a;Discuz! X收藏列表页调用…

【9】知识存储

一、图数据库neo4j Neo4j是一个高性能的,NOSQL图形数据库&#xff0c;它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎。单节点的服务器可承载上亿级的节点和关系&#xff0c;单节点性能不够时也可进行分布式集群部…

提升认知水平和防止偏见浅谈

提升认知水平和防止偏见浅谈 《庄子外物》&#xff1a;井蛙不可语海&#xff0c;夏虫不可语冰。 不要跟井底的青蛙谈论大海&#xff0c;因为它的认知只有井底那么大&#xff0c;大海对于它来说是认知盲区&#xff1b;不要与夏虫去谈论冰雪&#xff0c;因为夏虫一生很短没有经历…

5. D. In Love(贪心)

题目链接 D. In Love 题意 线段的集合&#xff0c;有两种操作 插入一个线段删除一个线段 每次操作后都要去查询是否存在两个线段不相交 题解 首先先看两个线段不相交需要满足什么条件 也就是较 大 l > 小 r 大l>小r 大l>小r即可满足不相交 我们进行推广 当集合…

手撕qsort函数

前言 本篇主要讲解的是qsort函数细节以及运用实例。 紧跟我的脚步一起手撕qsort函数吧~ 欢迎关注​​个人主页&#xff1a;逸狼 更多优质内容&#xff1a; 拿捏c语言指针&#xff08;上&#xff09; 拿捏c语言指针&#xff08;中&#xff09; 拿捏c语言指针&#xff08;下&…

【数据结构/c++】求解有向无环图DAG的关键路径

#include<cstring>//memset头文件 #include<algorithm>//fill头文件 #include<vector> #include<stdio.h> #include<stack> #include<queue> using namespace std; const int MAXV510; struct Node{int v,w;Node(int _v,int _w):v(_v),…