【STM32F4】STM32CUMX相关环境配置

news/2024/5/18 23:29:47

一、环境配置

我们需要以下两个软件

(一)keil5

最正统,最经典的嵌入式MCU开发环境。

该环境的配置可以看看之前的文章

所需文件如下:

当时配置的是STC8H的环境,现在基于此,重新给STM32配置环境。能让STC8H和STM32都能在同一个Keil软件编译运行!

第一步 首先获得并解压ARMCC文件

img

解压后,将它放置keil5的安装路径下的ARM文件夹中,如下图所示:

img

(二) STM32芯片包

   keil5软件里有时候会弹出CMSIS Packs下载的页面,但是不推荐在那里下载,因为非常的慢!

可以去ARM官方网址下载安装:

Arm Keil | Keil STM32F4xx_DFP

img

下载完后如下:

img

然后双击它,将它安装好就行了!

第三步 Keil配置

创建新工程中

img

img

img

img

img

img

这样就配置好了。

创建工程还需要将官方的固件库包里的源码文件复制到我们的工程目录文件夹下面(有时间后面再补充吧)。

这里我们直接拿一个demo工程测试一下:

img

说明你的keil可以编译运行STM32的代码了。

(三)STM32CubeMX

一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。

img

配置步骤:

1.打开ST官网STM32CubeMX - STM32Cube初始化代码生成器 - 意法半导体STMicroelectronics

2.划到官网主页的最底部(根据自己的电脑型号进行选择)

虽然这是个免费的软件,但是下载还需要注册账号或者作为访客下载,操作有些麻烦。

下载安装就好啦

(四)STM32Cubx新建工程

点击File->New Project来创建一个新的工程。

在弹出的界面中找到并选择对应芯片型号,可以在左上角的对话框中搜索,选中后点击Start Project来新建工程。

可以对芯片引脚进行选择操作啦!

1.stm32功能界面简介

新建工程完毕后将弹出这个界面,下面我将简单介绍一下其中的主要功能。

(1)MCU

首先是这中间这块芯片,有所有引脚的映射。用鼠标左右键点击某一引脚可以直接对其进行配置,一般在引脚用作普通IO口或者将引脚的其他功能映射至非默认引脚时需要对引脚直接操作。

(2)外设配置

左边这一栏是外设配置栏,所有内核有关,数模转换有关或是其他外设配置的初始化都在其中进行设置,包括一些第三方组件和实时操作系统的移植都可以在其中完成,还是非常方便的。打勾的地方说明该功能有配置。

这里我们设置一下RCC时钟源,高速时钟源都由外部晶振产生。

(3)时钟树

上面一栏的第二个选项便是时钟树的配置图,可以直接选择各个节点的分频系数来得到外设的时钟频率;甚至可以直接在相应外设的时钟输出端,也就是最后一项里面输入频率,系统会自动计算出节点的分频系数,不过可能因为目前的算法不够完善,总是会卡住,所以不推荐。当然,在此之前要先在外设配置的RCC配置里面把时钟源设置一下。因为现在不需要功能实现,就先不具体设置。

(4)工程设置

上面一栏的第三个选项是工程设置的选项,这里一般在新建工程后首先配置,因为一般不变,而且容易忽略。这里介绍几个一般配置的点,其他地方基本可以不用关注。

  • 工程名(旧版本不允许有中文,当前版本已经支持,**但keil的输出文件中不允许中文,否则会报

  • 编译器种类及版本(一般是MDK也就是keil)

  • 堆栈大小(一般不用管,特殊项目如USB开发时可能用到)

工程文件创建好了!

(5)程序下载

首先安装ST-LINK驱动

有很多下载的方法,一般都是ST-LINK、J-LINK,也可以下载STM32cubeprogrammer(但是非常不推荐,感觉多此一举了!)

如果匹配成功的话就会有以下显示

随后点击OK就好了

下一步 点击编辑运行

如果没有语法报错,则会是0 error

再下一步 点击烧录程序

如果没有问题的话,信息栏会显示如下


http://www.mrgr.cn/p/04545865

相关文章

重庆软航H5 PDF签章产品经nginx代理之后在浏览器中在线打开PDF盖章时提示:签章失败:网络错误 413 Request Entity Too Large的问题解决办法

问题现象:问题描述:在系统中集成了软航H5 PDF签章产品,软航H5 PDF签章产品的对应服务是通过nginx代理的,在奇安信浏览器中在线打开PDF点击产品的工具栏上的盖章按钮:选定印章之后,在PDF文档上选定盖章位置之后,提示:签章失败:网络错误。 最近在做这个软航H5 PDF电子签…

Java之oop(面向对象编程)

目录面向对象编程(OOP)一、面向过程与面向对象二、Java基本元素:类和对象三、对象的创建与使用1. 对象的使用2.内存解析3.匿名对象四、类的成员1. 属性1.1概念1.2分类2. 方法2.1 声明格式2.2 方法的重载2.3 可变形参的方法2.4 方法参数的值传递机制2.5 递归方法3. 构造器4.…

顺序栈的接口程序

顺序栈的接口程序 头文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h>创建顺序栈 // 指的是顺序栈中的元素的数据类型,用户可以根据需要进行修改 typedef int DataType_t; // 构造记录顺序栈SequenceStack各项参数(栈底地址+栈容量+栈顶元…

【八股】Java基础、集合、JVM

面向对象三大特性 1 封装&#xff1a; 将 方法 和 属性 写到同一个类中&#xff0c;并将属性 私有化&#xff0c;生成 get set方法&#xff0c;外部访问属性需要通过get和set方法,内部可以直接访问属性&#xff0c;这样的一个类我们认为它完成了封装。 2 继承&#xff1a; 子…

【Linux】在centos快速搭建K8S1.18集群

使用 kubeadm 创建集群帮助文档 如果您需要以下几点&#xff0c;该工具是很好的选择&#xff1a;kubeadm 一种简单的方法&#xff0c;让你尝试 Kubernetes&#xff0c;可能是第一次。现有用户自动设置群集并测试其应用程序的一种方式。其他生态系统和/或安装程序工具中的构建…

spark和scala的搭建

Scala--部署安装步骤 (1)上传并解压安装scala安装包 例:tar -zxvf scala--** -C 指定位置 (2)设置环境变量 vim /etc/profile export SCALA_HOME=spark软件包位置 export PATH=$PATH:${SCALA_HOME}/binsource /etc/profile使环境变量生效 (3)验证scala 启动成功spark--部…

网络拓扑—DNS服务搭建

作者:竹等寒 均使用Windows Server 2003进行搭建DNS服务搭建 网络拓扑 为了节省我的U盘空间,没有用路由器,所以搭建的环境只要在同网段即可。//交换机不用考虑 DNS:192.168.1.1 P C:192.168.1.2配置网络 DNSipconfig 查看网卡配置,可以看到配置成功了PCipconfig /all查看…

C++必修:从C到C++的过渡(下)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C学习 贝蒂的主页&#xff1a;Betty’s blog 1. 缺省参数 1.1. 缺省参数的使用 缺省参数是声明或定义函数时为函数的参数指定…

2023CPCC河南省赛题解+总结

2023CPCC河南省赛题解+总结比赛链接:https://codeforces.com/gym/104354 答题情况:答题情况 开题顺序是:A-F-H-K-E-B-G 题面链接:https://codeforces.com/gym/104354/attachments/download/20061/statements_2.pdf Problem A. 小水獭游河南 签到题,队友写的 题意:给你一…

新手也能学会的甘特图制作教程

## 甘特图是什么?甘特图(Gantt Chart)是一种以图表形式直观展示项目计划的工具,由20世纪初的管理学家亨利甘特(Henry Gantt)发明并命名。它具有以下几个主要特点:1. 水平时间轴甘特图的横轴是一条时间轴,通常按天、周或月来刻度,直观展示了项目从开始到结束的整个时间跨度。2.…

如何部署 wfs 分布式服务

说明&#xff1a; wfs是海量小文件存储系统。wfs1.x不直接支持分布式存储&#xff0c;但为了应对大规模部署和高可用需求&#xff0c;推荐采用如Nginx这样的负载均衡服务&#xff0c;通过合理的资源配置和定位策略&#xff0c;可以在逻辑上模拟出类似分布式的效果。也就是说&am…

4-25 WP整理

AliyunCTF 2024 - 帕鲁情绪管理 nc链接上去过掉proof看到如下交互 sha256(("zqonds929lsi1d19ayrm6xdxogid" + "????").encode()) = 447dedc4395aae3f6344689b6fdeadc71d7759c3d9b5071ce318267ed587ce97 Please input the answer: Do you want to tra…

二维前缀和与差分

前言 延续前面所讲的一维前缀和以及差分&#xff0c;现在来写写二维前缀和与差分 主要这个画图就比前面的一维前缀和与差分复杂一点&#xff0c;不过大体思路是一样的 一维和二维的主要思路在于一维是只针对对一行一列&#xff0c;而二维是针对与一个矩阵的 好吧&#xff0…

嵌入式Linux driver开发实操(十八):Linux音频ALSA开发

应用程序程序员应该使用库API,而不是内核API。alsa库提供了内核API 100%的功能,但增加了可用性方面的主要改进,使应用程序代码更简单、更美观。未来的修复程序或兼容性代码可能会放在库代码中,而不是放在内核驱动程序中。 使用ALSA API和libasound进行简单的声音播放: /*…

麒麟 Kylin V10 一键安装 Oracle 11GR2 单机 ASM(231017)

前言 Oracle 一键安装脚本&#xff0c;演示麒麟 Kylin V10 一键安装 Oracle 11GR2 单机 ASM&#xff08;231017&#xff09;过程&#xff08;全程无需人工干预&#xff09;&#xff1a;&#xff08;脚本包括 ORALCE PSU/OJVM 等补丁自动安装&#xff09; ⭐️ 脚本下载地址&a…

Hbase学习笔记

Hbase是什么 HBase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统。它利用Hadoop HDFS作为其文件存储系统,并提供实时的读写的数据库系统。HBase的设计思想来源于Google的BigTable论文,是Apache的Hadoop项目的子项目。它适合于存储大表数据,并可以达到实时级别。HB…

深度神经网络(DNN)

通过5个条件判定一件事情是否会发生&#xff0c;5个条件对这件事情是否发生的影响力不同&#xff0c;计算每个条件对这件事情发生的影响力多大&#xff0c;写一个深度神经网络&#xff08;DNN&#xff09;模型程序,最后打印5个条件分别的影响力。 示例 在深度神经网络&#xf…

栈(Stack)的原理与代码实现

介绍栈的原理,并分别使用数组和链表实现栈的结构。栈(stack) 原理说明: ​ 学习数据结构的目的是为了更好的处理和存储数据,对于顺序表而言改查比较容易,增删比较麻烦,对于链式表而言,增删比较简单,改查比较麻烦,所以每种数据结构都有不同的特点,用户需要选择合适的…

eBay、亚马逊自养号测评如何避免风控账号关联选择合适网络IP环境

在自养号下单中选择适合的网络环境至关重要。经过多次实践与测试&#xff0c;积累了大量的经验&#xff0c;希望能够与大家分享&#xff0c;帮助大家避开陷阱&#xff0c;顺利前行。 市面上的网络环境种类繁多&#xff0c;从纯IP类的Luminati、Rola&#xff0c;到纯环境类的VM…

linux centos8 系统扩容 VMware Centos---VMware ESXi

linux 系统扩容 VMware Centos---VMware ESXi 用到的命令 df fdisk pvcreate pvdisplay vgdisplay vgextend lvdisplay lvextend resize2fs 01) 使用了一段时间虚拟机后发现磁盘不够用了,需要扩容。在客户端操作扩容出现磁盘已成功扩展。 您必须从客户机操作系…