STM32CubeMX如何配置生成项目以及安装包

目录

一、STM32CubeMX介绍

二、用STM32CubeMX生成项目

1.创建项目

2.定义引脚

3.配置时钟

4.保存项目

5.生成项目

6.打开项目


一、STM32CubeMX介绍

STM32CubeMX是STM32Cube工具家族中的一员,专门为STM32微控制器的开发提供便利。它是一款图形化工具,允许用户通过直观的方式完成从MCU/MPU选型、引脚配置、系统时钟以及外设时钟设置,到外设参数配置、中间件参数配置等一系列工作。

本文所用STM32CubeMX版本号为v6.1.0,如果没有安装包的朋友可以从下面下载,由相近版本号的朋友可以直接参考下文生成项目。

https://pan.baidu.com/s/1ed4dt4XKsu7JZzuXHulEPA 
提取码:i8p2

二、用STM32CubeMX生成项目

本文以STM32F429为例,创建一个GPIO口输出的简单项目。

1.创建项目

(1)打开STM32CubeMX主界面以后,点击File按钮,然后点击NewProject按钮。

(2)首先,我们选择系列,点击Series,将STM32F4勾选上。

(3)然后,点击Line,将STM32F429/439勾选上。

(4)我们点击Package选择封装形式,从官方数据手册或技术规格书中得STM32F429IGTx属于LQFP176,LQFP176是一种集成电路(IC)的封装形式,具体来说,它代表了一个具有176个引脚的低轮廓四方扁平封装(Low-profile Quad Flat Package)。

(5)选择STM32F429IG后,点击上面的Start Project。

2.定义引脚

(1)创建项目完成以后,会出现这张引脚分配图,可以清晰的从图中看到引脚分配的情况,vss和vdd的引脚已经被分配。

(2)搜索到PB0以后,PB0引脚会闪动,右键可以将其设置成 output模式。

(3)左边菜单栏,选择Categrpries,然后选择System Core,选择GPIO,可以看到我们刚定义的GPIO_B0,点击对应的行可以对其进行设置。下图中我们将GPlO output level设置成了High,GP10 Pull-up/Pull-down设置成了Pull-up,Maximum output speed设置成了High。

3.配置时钟

(1)打开左边菜单栏,选择RCC,然后将High Speed Clock (HSE) 从disable改成Crystal/Ceramic Resonator来启动HSE时钟源。

(2)打开Clock Configuration模块,默认系统时钟是16MHz,用了HSI作为时钟源,我们将HCLK这里改成180,然后敲回车,软件会自动将系统时钟分配为180MHz,改用HSE倍频的PLL作为时钟源。

4.保存项目

防止STM32CubeMX我们配置的这些丢失,我们先将STM32CubeMX保存。

(1)选择File,然后点击Save Project按钮。

(2)创建一个空白文件夹,选择文件夹,保存的文件名称会和文件夹名称保持一致

5.生成项目

(1)生成项目之前,我们先配置一下项目的基本信息,后面用什么编辑器编辑,比如这里我们选择了MDK5,然后可以根据自己的需求配置一下堆栈的大小

(2)最后点击界面右上角的GENERATE CODE就可以生成这个项目了,注意第一次生成的时候比较慢,因为需要下载对应的固件库

(3)我们打开项目的文件夹,如下图所示,项目就被生成好了。

6.打开项目

打开项目以后,可以看到我们的配置相关代码全被保存到了main文件中,下面是我们配置时钟的代码图。

最后找到了我们配置的GPIO_B0引脚输出的相关代码,这个软件配置还是比较好用的,并且生成的hal库代码再移植到其他stm32芯片的项目中也十分方便。

static void MX_GPIO_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOH_CLK_ENABLE();
  __HAL_RCC_GPIOB_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);

  /*Configure GPIO pin : PB0 */
  GPIO_InitStruct.Pin = GPIO_PIN_0;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_PULLUP;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

新加坡工作和生活指北:租房篇

本文首发于公众号 Keegan小钢 前段时间已经分享了工作篇,现在接着聊聊生活篇。因为生活这块涉及到多个方面,内容比较多,所以我再细分了一下,本篇先聊聊租房。 先来看看新加坡的地区分布图,如下: 上图将新加…

【C语言】指针(3):探索-不同类型指针变量

目录 一、字符指针变量 二、数组指针变量 三、二维数组传参的本质 四、函数指针变量 4.1 函数指针变量 4.2 函数指针变量的使用 4.3 函数指针变量的拓展 五、函数指针数组 六、转移表的应用 通过深入理解指针(1)和深入理解指针(2&am…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十二章 Linux 权限管理

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

Python 插入、替换、提取、或删除Excel中的图片

Excel是主要用于处理表格和数据的工具,我们也能在其中插入、编辑或管理图片,为工作表增添视觉效果,提升报告的吸引力。本文将详细介绍如何使用Python操作Excel中的图片,包含以下4个基础示例: 文章目录 Python 在Excel…

Autogen基本使用介绍

文章目录 一,Build1,Skill2,Models3,agents4,workflow 二,Playground 本文唯一目的就是介绍一下Autogen Studio的基本的使用。 打开这个网页以后,看到它有2个菜单,分别是: BuildPla…

07-7.3.2 平衡二叉树(AVL)

👋 Hi, I’m Beast Cheng 👀 I’m interested in photography, hiking, landscape… 🌱 I’m currently learning python, javascript, kotlin… 📫 How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以…

使用 Qt 和 ECharts 进行数据可视化

文章目录 示例图表预览折线图散点图柱状图使用 Qt 和 ECharts 进行数据可视化一、准备工作1. 安装 Qt2. 准备 ECharts二、在 Qt 中使用 ECharts1. 创建 Qt 项目2. 配置项目文件3. 在 UI 中添加 WebEngineView4. 加载 ECharts三、创建折线图、散点图和柱状图1. 折线图2. 散点图3…

工作流之战: Flowable vs. Camunda vs. Activiti

欢迎来到我的博客,代码的世界里,每一行都是一个故事 🎏:你只管努力,剩下的交给时间 🏠 :小破站 工作流之战: Flowable vs. Camunda vs. Activiti 前言功能特性对比架构设计分析性能比较使用场景…

zookeeper加入开机启动项

Windows的任务计划程序(Task Scheduler)是一个强大的工具,允许你安排程序在特定时间自动运行,包括开机时。 打开任务计划程序: 按下Win R键,打开“运行”对话框。输入taskschd.msc并回车,打开…

js ES6 part1

听了介绍感觉就是把js在oop的使用 作用域 作用域(scope)规定了变量能够被访问的“范围”,离开了这个“范围”变量便不能被访问, 作用域分为: 局部作用域、 全局作用域 1. 函数作用域: 在函数内部声明的…

Docker定时清理

一、循环调度执行 1、检查cron状态 systemctl status crond 2、创建要执行的shell脚本 vim /home/cleanup_docker.sh #! /bin/bash # 清理临时文件 echo $(date "%H:%M:%S") "执行docker清理命令..." docker system prune -af-a 清理包括未使用的镜像 …

Vue3动态路由(响应式带参数的路由)变更页面不刷新的问题

背景 先说说问题,问题来源是因为我的开源项目Maple-Boot项目的网站前端,因为项目主打的内容发布展示,所以其中的内容列表页会根据不同的菜单进行渲染不同的路由。 这里路由path使用的是/blog/:menu?,通过menu的参数来渲染对应的…

很多人对AI Agent的理解太片面

现在 AI 智能体(AI Agent)的概念很火,似乎 Agent 是用 AI 解决问题的银弹,有了 Agent 就可以解决很多问题。但也有很多人有不同意见,认为 Agent 不过是噱头,并没有看到靠谱的应用场景。 一个被提及很多的是…

openlayers更改点坐标

我现在的需求是无人机点位根据ws传输的经纬度改变位置,在网上查了很多资料,终于是做出来了,如果有问题请指出。 效果图,无人机可以来回移动 这里是核心代码 // 添加飞机点位图层let vectorLayerpointfunction DronepointLayer()…

Windows远程桌面的奇技淫巧

前言 Windows远程桌面简介 远程桌面协议(RDP)是一个多通道(multi-channel)的协议,让使用者连上提供微软终端机服务的计算机(称为服务端或远程计算机) 远程桌面的前置条件 在获取权限后,针对3389进行展开,先查询3389端口是否开启 netstat…

PHP工单预约表单系统小程序源码

🔧【高效办公新利器】工单预约表单系统大揭秘 💼【一键提交,工单管理新高度】 你还在为繁琐的工单提交流程头疼吗?工单预约表单系统,让你的工单管理步入高效时代!只需简单几步,填写必要信息&a…

记一次线上流量突增问题排查

一.问题 接流量告警出现获取 xx 信息接口调用次数同比往年大促活动猛涨.扩大至 10 倍之多.心里顿时咯噔一下.最近各种严打,顶风作案.某不是摸到电门了.一下子要把自己带走.从此走向求职之路.一时间脑子哇哇的思绪万千. 202x.5.20 大促开门红的调用.这个是往年活动的时候的调用…

app: 和 android:的区别

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

Dynadot 2024年第一季度回顾

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

顶刊文献阅读及代码复现

前提:每个无人机都有 (i)自己的机载计算机,用于执行控制其自身动作所需的计算 (ii)自己的传感器系统,用于测量相对位置和速度, (iii)自己的通信设备,用于与相邻代理进行数据交换。 模型:短期的排斥力、中间范围的速度一致性和长距离的吸引力