STM32 HAL库开发学习1.STM32CubeMX 新建工程
STM32 HAL库开发学习1.STM32CubeMX 新建工程
- 一、 STM32 CubeMX 下载
- 二、CubeMX 功能介绍
- 1. 固件包路径设置
- 2. 新建工程
- 三、创建项目实例
- 1. 新建项目
- 2. GPIO 管脚设置
- 3. GPIO 窗口配置
- 4. 调试设置
- 5. 时钟配置
- 6. 项目管理
- (1)项目信息
- (2)代码生成规则
- (3)高级设置
- 7. 生成代码
- 四、烧录设置
一、 STM32 CubeMX 下载
到意法半导体官方下载 STM32 CubeMax软件并安装。
二、CubeMX 功能介绍
1. 固件包路径设置
点击 Help-Updater Settings …


2. 新建工程
新建工程有三种方式:
- 指定 MCU
- 指定开发板
- 加载示例
三、创建项目实例
1. 新建项目
本系列文章使用野火的 STM32F407IGT6 骄阳开发板,这里选择从MCU创建项目:

等待下载资源完成,出现界面:

输入芯片型号: 407IGT6,双击右下侧出现的列表项。
2. GPIO 管脚设置
左侧菜单点击 System Core、GPIO:

查看 《野火_F407骄阳原理图_V1.0_2020_10_10.pdf》原理图,找到LED引脚:

分别为:
- PA15
- PE2
- PG15
- PB8
按下图搜索引脚,并设置为GPIO_Output:

3. GPIO 窗口配置
设置为低电平、推挽输出、不上拉不下拉、低速率:

4. 调试设置

5. 时钟配置
这里使用默认的时钟配置。

6. 项目管理
(1)项目信息
如下图所示,IDE选择MDK-ARM。

(2)代码生成规则

(3)高级设置
指定库:

后面的 Generated Function Calls可以设置可见性、调用顺序等。
7. 生成代码
点击GENERATE CODE,生成代码需要先登陆并下载库,没有账号直接创建即可。

等待下载完成。
生成成功后,点击Open Project。
KEIL打开后会提示安装芯片包,按提示操作即可。
四、烧录设置
使用 CMSIS-DAP 连接烧写口:




相关文章:
STM32 HAL库开发学习1.STM32CubeMX 新建工程
STM32 HAL库开发学习1.STM32CubeMX 新建工程 一、 STM32 CubeMX 下载二、CubeMX 功能介绍1. 固件包路径设置2. 新建工程 三、创建项目实例1. 新建项目2. GPIO 管脚设置3. GPIO 窗口配置4. 调试设置5. 时钟配置6. 项目管理(1)项目信息(2&#…...
JS学习(2)(浏览器执行JS过程、JS的ECMAScript、DOM、BOM)
目录 一、浏览器如何执行JS? (1)浏览器主要的组成部分。 1、渲染引擎。 2、JS引擎。 (2)演示。 二、JS的组成。 (1)JS主要由三部分组成。 1、JS基础。 2、JS-API。 (2)EC…...
如何解决服务器扫描出的ASP木马问题
随着互联网的发展,网站安全问题日益凸显。其中,ASP(Active Server Pages)木马因其隐蔽性和危害性成为攻击者常用的手段之一。本文将详细介绍如何检测和清除服务器上的ASP木马,以保障网站的安全。 1. ASP木马概述 ASP…...
SpringBoot 架构助力夕阳红公寓管理系统可持续发展战略
摘 要 如今社会上各行各业,都在用属于自己专用的软件来进行工作,互联网发展到这个时候,人们已经发现离不开了互联网。互联网的发展,离不开一些新的技术,而新技术的产生往往是为了解决现有问题而产生的。针对于夕阳红公…...
TCP、HTTP、RPC
一、TCP (Transmission Control Protocol) 定义 TCP(传输控制协议)是一种面向连接、可靠传输的传输层协议,用于在计算机网络中提供端到端的数据通信服务。它是互联网协议套件的一部分,与IP(互联网协议)一…...
《C++ 中 RNN 及其变体梯度问题的深度剖析与解决之道》
在当今人工智能蓬勃发展的浪潮中,递归神经网络(RNN)及其变体长短期记忆网络(LSTM)和门控循环单元(GRU)在处理序列数据方面展现出了强大的潜力。然而,当我们在 C中着手实现这些网络时…...
TypeScript 在 React 中的应用
文章目录 前言一、为什么要在 React 中使用 TypeScript?二、如何在React中使用 TypeScript三、高级类型结语 前言 随着前端开发的复杂度不断提升,开发者对于代码质量、可维护性和开发效率的要求也日益增高。TypeScript 作为一种为 JavaScript 添加静态类…...
黑马2024AI+JavaWeb开发入门Day07-部门管理-日志技术飞书作业
视频地址:哔哩哔哩 讲义作业飞书地址:day07作业 完成新增班级和查询班级的接口开发 1、ClazzController.java package org.example.controller;import lombok.extern.slf4j.Slf4j; import org.example.pojo.Clazz; import org.example.service.Clazz…...
UIlicious - 自动化端到端测试
在现代软件开发中,测试自动化已然成为产品交付质量的基石。而端到端测试(E2E),作为验证整个应用流畅运行的关键,常常是测试工作中最具挑战性的一环。这时,一款简单高效的自动化测试工具——UIlicious&#…...
JMeter中获取随机数、唯一ID、时间日期(包括当前日期增减)截取指定位数的字符等
在JMeter中,您可以使用内置的函数和一些额外的插件来获取随机数、唯一ID、时间日期以及截取指定位数的字符。以下是一些常用的方法: 获取随机数: 使用__Random函数,您可以在指定的最小值和最大值之间生成一个随机数。例如…...
构建自己的docker的ftp镜像
aarch64系统可运行的docker镜像 构建自己的vsftpd镜像,我是在windows系统下的docker desktop中构建运行于aarch64 GNU/Linux系统的ftp镜像。 系统环境: Welcome to Debian GNU/Linux with Linux x.x.x dockerfile FROM ubuntu:latestUSER rootRUN ap…...
人机交互革命,为智能座舱市场激战注入一针「催化剂」
从AIGC到AGI赋能,智能座舱人机交互体验迎来新范式。 不断训练、迭代的大模型,为智能座舱带来了更全面的感知能力、更准确的认知理解,以及更丰富的交互模态,显著提升了其智能化水平。 “AI大模型的快速应用与迭代,推动…...
数据结构复习记录
基本概念 线性表 线性表是最简单也最常用的一种数据结构,是由n( n ≥ 0 n\geq0 n≥0)个类型相同的数据元素组成的有限序列,是一种逻辑结构,有两种表示方式(即存储结构):顺序表示和链式表示。 栈和队列 栈…...
Qt自定义checkbox实现按下回车键该项打勾
引言 开发环境代码结构示例代码运行效果总结使用qt实现一个列表,列表中每一项中的类似一个checkbox,通过上下键可以切换选中项,按下回车键在已经选中的项前出现对勾。效果如下: 20241203_163929 开发环境 使用ubuntu下QtCreator4.11.。 代码结构 这里将项目的结构截图贴…...
头歌作业 数据库与大数据管理 期末复习资料
1、 下列说法错误的是?c A、UserCF算法推荐的是那些和目标用户有共同兴趣爱好的其他用户所喜欢的物品 B、ItemCF算法推荐的是那些和目标用户之前喜欢的物品类似的其他物品 C、UserCF算法的推荐更偏向个性化 D、UserCF随着用户数目的增大,用户相似度…...
2023年华数杯数学建模A题隔热材料的结构优化控制研究解题全过程文档及程序
2023年华数杯全国大学生数学建模 A题 隔热材料的结构优化控制研究 原题再现: 新型隔热材料 A 具有优良的隔热特性,在航天、军工、石化、建筑、交通等高科技领域中有着广泛的应用。 目前,由单根隔热材料 A 纤维编织成的织物,…...
如何抓取亚马逊页面动态加载的内容:Python爬虫实践指南
引言 在现代电商领域,数据的重要性不言而喻。亚马逊作为全球领先的电商平台,其页面上动态加载的内容包含了丰富的商品信息。然而,传统的爬虫技术往往难以应对JavaScript动态加载的内容。本文将详细介绍如何使用Python结合Selenium工具来抓取…...
在线钢琴源码
在线钢琴源码 是利用HTML5技术开发的在线钢琴应用,致力于为钢琴爱好者、音乐爱好者提供一个优雅、简洁的平台 在学习工作之余可以在线弹钢琴,享受音乐、生活的美好。自由钢琴支持自动演奏和手动演奏,简单易学,快来试试吧 源码截…...
【OpenDRIVE_Python】使用python脚本输出OD数据中含有信号灯地物的道路ID和信号灯信息
示例代码说明: 遍历OD数据中每条道路Road,若Road中存在信号灯地物signal,则将该道路ID和包含的所有信号灯输出到xml文件中。补充:一个Road中可能存在多个信号灯signal,这里取signal的上级标签signals,则将所有信号灯同…...
普中51单片机——LED流水灯模块
1、GPIO概念 GPIO(general purpose intput output)是通用输入输出端口的简称,可以通过软件来控制其输入和输出。51 单片机芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯、 控制以及数据采集的功能。 1.1、GPIO分类 &a…...
KMS_VL_ALL_AIO:开源智能激活工具让Windows和Office激活变得简单
KMS_VL_ALL_AIO:开源智能激活工具让Windows和Office激活变得简单 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统未激活的水印烦恼吗?Office软件频繁弹…...
OpenCore Legacy Patcher终极指南:4步让老款Mac免费升级最新macOS系统
OpenCore Legacy Patcher终极指南:4步让老款Mac免费升级最新macOS系统 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为你的老款Mac无法升级…...
Windows苹果设备驱动一键安装:告别iTunes臃肿体验的完整解决方案
Windows苹果设备驱动一键安装:告别iTunes臃肿体验的完整解决方案 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.…...
保姆级教程:用CellChat v2 R包分析10x Visium空间转录组数据,手把手搞定细胞通讯网络
空间转录组细胞通讯分析全流程:从CellChat v2安装到高级可视化空间转录组技术正在彻底改变我们对组织微环境的理解,而细胞间通讯分析则是解锁组织功能奥秘的关键钥匙。作为一名刚接触10x Visium数据的生物信息学研究者,你可能已经完成了基础的…...
纤维丛与连接:从微分几何到量子控制与最优控制的桥梁
1. 纤维丛与连接:从抽象几何到物理与控制的桥梁在微分几何的世界里,纤维丛是一个强大而优雅的框架,它允许我们在一个复杂的“总空间”上,为底流形上的每一点都“安装”一个额外的结构,比如一个向量空间、一个李群&…...
社区检测技术演进与HPMOCD多目标优化实践
1. 社区检测技术演进与多目标优化挑战社区检测作为复杂网络分析的核心技术,其发展历程经历了从启发式方法到数学优化,再到多目标协同进化的三个阶段。早期的GN算法采用边介数作为分裂标准,虽然结果精确但计算复杂度高达O(n)。2008年提出的Lou…...
随机森林回归与PISO算法融合:实现CFD在线模型修正与状态估计
1. 项目概述:当随机森林“遇见”PISO算法在计算流体动力学(CFD)的日常工作中,我们常常面临一个核心矛盾:物理模型的普适性与特定场景的精确性难以兼得。传统的湍流模型,无论是雷诺平均纳维-斯托克斯&#x…...
机器学习力场与恒电位模拟:原子尺度揭示锂枝晶成核机制
1. 项目概述:当机器学习“遇见”电化学界面模拟研究锂金属电池,最让人头疼的问题之一就是锂枝晶。这东西就像电池内部的“定时炸弹”,在充放电过程中,锂离子不均匀地沉积在负极表面,形成树枝状的突起。它们不仅会刺穿隔…...
Linux内核启动时,你的isolcpus参数到底经历了什么?从GRUB到CPU掩码的完整旅程
Linux内核启动时,isolcpus参数的奇幻漂流:从GRUB配置到CPU隔离的完整解密当你在GRUB配置文件中写下isolcpus2-3这行看似简单的指令时,可能不会想到这个字符串将经历一场跨越多个软件层的奇妙旅程。本文将带你以侦探视角,追踪这个参…...
Evident方法论:用观察、假设、测试构建可复现的数据科学工作流
1. 项目概述:为什么我们需要一种新的数据科学方法论?干了十多年数据科学和机器学习项目,从初创公司到大型企业都待过,我越来越觉得,我们这行当的“工作方式”有点不对劲。项目周期总是难以预估,代码和数据像…...
