STM32CubeMX初始生成工程
STM32CubeMX初始生成工程
STM32CubeMX软件可以很容易的配置STM32 MCU,例如引脚配置(Pins)、时钟树(Clock Tree)、外设(Peripherals)、中间件(Middleware)等
使用STM32CubeMX
软件可以快速配置STM32
工程,生成Keil
工程文件以及初始化生成统一风格的C
代码,以下为使用STM32F446
开发板生成工程的演示
STM32CubeMX界面介绍

通常我们直接选择ACCESS TO MCU SELECTOR
直接进入STM32 MCU
型号的选择界面,也可以点击工具栏中的File
–> New Project
进入

STM32CubeMX新建工程
STM32CubeMX软件提供了两种新建工程的方式:
- 基于
芯片
- 基于
ST官方发布的开发板
使用基于ST官方发布的开发板新建工程时,引脚分配、外设设置和时钟配置等步骤已经自动完成
芯片选择
- 首先在
Commercial Part Number
中输入芯片型号并查找 - 其次选择
STM32F446RCT6
- 点击
Start Project
开始配置资源

配置资源
选择好开发板后,我们就可以进行后续的STM32资源配置了

SYS配置(System Setting)、SYS Mode and Configuration
选择Debug
为Serial Wire
,这样后续就可以使用ST-Link
仿真器来下载与调试程序,同时引脚PA13
的功能将变为SWDIO
、引脚PA14
的功能将变为SWCLK
引脚 | 功能 | 英文全称 | 说明 |
---|---|---|---|
PA13 | SYS_JTMS-SWDIO | JTAG Mode Selection-Serial Wire Debug Input/Output | JTAG模式选择-串行线调试数据输入输出线 |
PA14 | SYS_JYCK-SWCLK | JTAG Clock Input-Serial Wire Debug Clock | JTAG时钟输入-串行线调试时钟 |

Debug
一些可选的模式
模式 | 说明 | 备注 |
---|---|---|
Disable | 禁用调试接口 | |
Serial Wire | 使用SWD接口 | |
JTAG (4pins) | 使用四线制JTAG调试接口 | Joint Test Action Group(联合测试行动小组) |
JTAG (5pins) | 使用五线制JTAG调试接口 | |
Trace Asynchronous Sw | 使用跟踪调试接口(SWO) |
RCC复位及时钟控制 (Reset and Clock Controler)
一般情况下我们选择High Speed Clock
的Crystal/Ceramic Resonator
即可

HSE
: High Speed External Clock
(外部高速时钟)
LSE
: Low Speed External Clock
(外部低速时钟)

Setting | 备注 |
---|---|
Disable | 禁止外部时钟 |
BYPASS Clock Source | 旁路时钟源 |
Crystal/Ceramic Resonator | 晶体/陶瓷振荡器 |
RCC_OSC_IN | RCC Oscillator(RCC 晶振输入引脚) |
RCC_OSC_OUT | RCC Oscillator(RCC 晶振输出引脚) |
Clock Configuration 时钟配置
在下图位置输入最大频率180MHz
回车,软件将自动配置时钟树

Project Manager 工程管理

Application Structure(工程文件结构)
提供了Basic
和Advanced
两种结构
Basic
结构适用于没有使用中间件或只使用了一种中间件的项目,用户代码分为Src
和Inc
两个文件夹;
Advanced
结构适合使用了多个中间件的项目,用户代码放在Core文件夹下,每个中间件的相关文件分别放在独立的文件夹内,并分别与硬件平台相关联的Target部分以及与应用相关的App部分

Generated files (生成文件设置) 解读
Generate peripheral initialization as a pair of .c/.h files per peripheral
如果勾选该选项,用户所使用的每个片内外设将单独生成.c问就按和.h文件(当用户的项目较为复杂时,使用的片内外设较多时,建议勾选该选项)
backup previously generated files when re-generating
该选项表示在重新生成文件时,将会生成一个Backup文件夹,备份以前生成的文件
Keep User Code when re-generating
该选项表示在每次生成文件时,位于文件中指定位置的用户代码将保留。用户所编写的代码必须位于这些指定的位置,否则在重新生成文件时,用户代码将被清除
Delete previously generated files-when not re-generated
该选项表示在重新生成文件时,将会删除以前生成的、但现在不需要再生成的文件。
生成工程
当配置好上述内容后,点击右上角GENERATE CODE
即可生成工程

打开生成文件夹路径,可以看到生成了以下文件及文件夹

E:.
├─Core
│ ├─Inc
│ └─Src
├─Drivers
│ ├─CMSIS
│ │ ├─Device
│ │ │ └─ST
│ │ │ └─STM32F4xx
│ │ │ ├─Include
│ │ │ └─Source
│ │ │ └─Templates
│ │ └─Include
│ └─STM32F4xx_HAL_Driver
│ ├─Inc
│ │ └─Legacy
│ └─Src
└─MDK-ARM
遇到的问题
下载解压失败


ST论坛解决方案
参考链接
STM32的JTAG和SWD模式
单片机的调试接口 JTAG SWD
相关文章:

STM32CubeMX初始生成工程
STM32CubeMX初始生成工程 STM32CubeMX软件可以很容易的配置STM32 MCU,例如引脚配置(Pins)、时钟树(Clock Tree)、外设(Peripherals)、中间件(Middleware)等 使用STM32CubeMX软件可以快速配置STM32工程,生成Keil工程文件以及初始化生成统一风格的C代码&…...
STM32单片机(F03C8T6)-点灯(寄存器点灯和库函数点灯)
作者:Whappy 时间:2024.10.9 日志:本实验是我第一个32位单片机实验程序,如有不足请指点! #include "stm32f10x.h" // Device headerint main(void) {//寄存器点灯RCC->APB2ENR 0x000…...
PCL 3D-SIFT关键点检测(曲率不变特征约束
PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇总(长期更新) 一、概述 3D-SIFT(Scale-Invariant Feature Transform)关键点检测是用于点云分析的一种有效方法,具有尺度不变性和旋转不变性。在处理复杂场景和物体识别时,通过对点云…...

Android上的AES加密
基础算法说明 https://www.youtube.com/watch?vlnKPoWZnNNM 虽然这个视频讲的非常详细,但是涉及到具体底层算法,大致流程 1. 将数据转成HEX或者byte array 2.将数据分层一块块等大小的数据 3.将数据和key 进行一次混合,加密之后的输出&…...
安全测试的漏洞类型
目录 一、安全测试的定义 二、安全测试的分类 1、静态扫描 2、内存扫描 3、动态安全测试 三、安全测试主要关注哪些方面的漏洞 漏洞一:SQL注入 漏洞二:XSS 漏洞三:暴力破解 漏洞四:文件包含文件上传漏洞 漏洞五&#…...
51 | 适配器模式:代理、适配器、桥接、装饰,这四个模式有何区别?
前面几篇文章我们学习了代理模式、桥接模式、装饰器模式,今天,我们再来学习一个比较常用的结构型模式:适配器模式。这个模式相对来说还是比较简单、好理解的,应用场景也很具体,总体上来讲比较好掌握。 关于适配器模式…...

ORM框架简介
什么是ORM? ORM(Object-Relational Mapping,对象关系映射)是一种编程技术,用于在关系数据库和对象程序语言之间转换数据。ORM框架允许开发者以面向对象的方式来操作数据库,而不需要编写复杂的SQL语句。简单…...

Windows系统上根据端口号查找对应进程
“开始”-“运行”,输入cmd,打开命令行窗口,输入netstat和findstr的组合,找出占用了4118的端口的进程 根据上述PID,使用tasklist和findstr的组合,找出对应进程是dsa.exe 要想kill此进程,可以打开…...
一文通透OpenAI o1:从CoT、Quiet-STaR、Self-Correct、Self-play RL、MCST等技术细节到工程复现
前言 注意,本文自10.12日起,正在每天更新的过程中,包括已写的部分也在不断修改(以增加更多技术细节、更加通俗易懂) 预计10.20完成第一版,10月底修订到第二版——具体修订记录详见本文文末.. 可能是去年写或讲的关于ChatGPT原理的…...

如何解决与kernel32.dll相关的常见错误:详细指南解析kernel32.dll文件缺失、损坏或错误加载问题
当你的电脑中出现错误kernel32.dll丢失的问题,会导致电脑不能出现正常运行,希望能够有效的帮助你有效的将丢失的kernel32.dll文件进行修复同时也给大家介绍一些关于kernel32.dll文件的相关介绍,希望能够有效的帮助你快速修复错误。 kernel32.…...

Caffeine Cache解析(一):接口设计与TinyLFU
Caffeine is a high performance Java caching library providing a near optimal hit rate. 自动加载value, 支持异步加载基于size的eviction:frequency and recency基于时间的过期策略:last access or last write异步更新valuekey支持weak referenceva…...
深入探索LINUX中AWK命令:强大的文本处理工具
深入探索LINUX中AWK命令:强大的文本处理工具 AWK 是一种编程语言,专为文本和数据处理设计,它以其强大的文本处理能力和简洁的语法在 Unix/Linux 系统中占据了重要地位。AWK 程序由一系列的模式(pattern)和动作(action)组成,对于输…...

数字化转型:解决项目管理困境的新路径
在当今这个飞速发展的数字化时代,企业如同在汹涌波涛中航行的船只,承受着前所未有的变革压力。而作为企业运作核心环节之一的项目管理,同样面临着巨大的挑战。 传统项目管理模式中的种种问题,犹如顽固的礁石,阻碍着项目…...

Arthas常用的命令(三)--monitor、jad 、stack
monitor:监控方法的执行情况 监控指定类中方法的执行情况 用来监视一个时间段中指定方法的执行次数,成功次数,失败次数,耗时等这些信息 参数说明 方法拥有一个命名参数 [c:],意思是统计周期(cycle of ou…...

Power BI之常用DAX函数使用介绍——提供数据源练习
前述: 本次使用数据是包含产品表、客户表、区域表、销售订单表的一份销售订单数据,数据源链接如下: 链接:https://pan.baidu.com/s/1micl_09hFrgz2aUBERkeZg 提取码:y17e 一、CALCULATE 1.语法结构 语法结构CALCUL…...
SQL-触发器(trigger)的详解以及代码演示
一、触发器的概念 触发器是一种特殊的存储过程,但是触发器不存在输入和输出参数,所以不能被显式的去调用,而是与特定的表相关联,当表中的数据发生变化时,触发器被激活并执行其定义的SQL代码。触发器可以是行级触发器&…...

【devops】x-ui 实现一键安装 x-ray 打造高速国际冲浪 | xray管理平台
一、部署X-UI篇 1、Github 地址&说明 github地址如下: https://github.com/FranzKafkaYu/x-ui?tabreadme-ov-file 2、一键部署 2.1、更新并安装curl #Ubuntu、Deibian系统 apt update && apt upgrade -y apt install curl -y #CentOS7 系统 yum…...

Linux系统编程——进程标识、进程创建
一、进程标识(pid) 每个进程都有一个非负整数形式的唯一编号,即 PID。PID 在任何时刻都是唯一的,但是可以重用,当进程终止并被回收以后,其 PID 就可以为其它进程所用。进程的 PID 由系统内核根据延迟重用算…...

【超级福利】openMind开源实习来袭,奖励高达万元,解锁你的AI实践新篇章!
亲爱的小伙伴们,是不是梦想着能在真实的项目中大展拳脚,却又苦于找不到合适的舞台?别担心,OpenI启智社区携手openMind Library工具链,为你量身打造了一场开源实习盛宴,保证让你的学习不再无聊,技…...
React JSX 使用条件语句渲染UI的两种写法
只针对函数组件 1. 第一种写法: function App({ id }) {return id1? <h1>hello</h1> : <h1>world</h1>; } 或者: function App({ id }) {return (<h1>{id1 && "hello" || id2 && "wo…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...