当前位置: 首页 > news >正文

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软件提供了两种新建工程的方式:

  1. 基于芯片
  2. 基于ST官方发布的开发板

使用基于ST官方发布的开发板新建工程时,引脚分配、外设设置和时钟配置等步骤已经自动完成

芯片选择

  1. 首先在Commercial Part Number中输入芯片型号并查找
  2. 其次选择STM32F446RCT6
  3. 点击Start Project开始配置资源

配置资源

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

SYS配置(System Setting)、SYS Mode and Configuration

选择DebugSerial Wire,这样后续就可以使用ST-Link仿真器来下载与调试程序,同时引脚PA13的功能将变为SWDIO、引脚PA14的功能将变为SWCLK

引脚功能英文全称说明
PA13SYS_JTMS-SWDIOJTAG Mode Selection-Serial Wire Debug Input/OutputJTAG模式选择-串行线调试数据输入输出线
PA14SYS_JYCK-SWCLKJTAG Clock Input-Serial Wire Debug ClockJTAG时钟输入-串行线调试时钟

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 ClockCrystal/Ceramic Resonator即可

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

Setting备注
Disable禁止外部时钟
BYPASS Clock Source旁路时钟源
Crystal/Ceramic Resonator晶体/陶瓷振荡器
RCC_OSC_INRCC Oscillator(RCC 晶振输入引脚)
RCC_OSC_OUTRCC Oscillator(RCC 晶振输出引脚)
Clock Configuration 时钟配置

在下图位置输入最大频率180MHz回车,软件将自动配置时钟树

Project Manager 工程管理

Application Structure(工程文件结构) 提供了BasicAdvanced两种结构

Basic结构适用于没有使用中间件或只使用了一种中间件的项目,用户代码分为SrcInc两个文件夹;
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. 第一种写法&#xff1a; function App({ id }) {return id1? <h1>hello</h1> : <h1>world</h1>; } 或者&#xff1a; function App({ id }) {return (<h1>{id1 && "hello" || id2 && "wo…...

硬件答辩问题总结

一、电源纹波是什么&#xff0c;为什么LDO的小&#xff0c;DCDC的大1.电源纹波电源纹波 是指直流电源输出电压上叠加的 交流波动成分&#xff0c;表现为电压在理想直流值附近上下波动。2.LDO 纹波小原理LDO 内部是一个 调整管&#xff08;可变电阻&#xff09; 串联在输入和输出…...

手把手教你为WCH CH582移植CherryUSB主机栈(基于RT-Thread,含中断优化)

基于RT-Thread的WCH CH582 USB主机协议栈深度移植指南在嵌入式开发领域&#xff0c;USB主机功能的实现往往意味着设备能够直接连接各类USB外设&#xff0c;从简单的键盘鼠标到复杂的存储设备。对于使用WCH CH582这类RISC-V内核MCU的开发者而言&#xff0c;原厂SDK提供的USB主机…...

长期使用Token Plan套餐在项目开发中的成本观察

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 长期使用Token Plan套餐在项目开发中的成本观察 在AI驱动的项目开发中&#xff0c;成本控制与预算管理是团队负责人必须面对的现实…...

从RD、CS到WK:一文讲透SAR主流成像算法的演进与选型实战

从RD、CS到WK&#xff1a;SAR成像算法选型实战指南 当无人机掠过灾区上空&#xff0c;或卫星扫描地球表面时&#xff0c;合成孔径雷达&#xff08;SAR&#xff09;正通过电磁波穿透云层和黑暗&#xff0c;将地面信息转化为高分辨率图像。而决定图像质量的关键&#xff0c;在于工…...

PCL 基于强度的双边滤波【2026最新版】

目录 一、算法原理 1、计算步骤 2、算法源码 3、函数解析 4、参考文献 二、代码实现 三、结果展示 四、滤波后未发生变化的原因 五、解决办法 六、结果展示 七、相关链接 本文由CSDN点云侠原创,博客长期更新,本文最近一次更新时间为:2026年5月24日。 一、算法原理 1、计算…...

别再只用鼠标了!用Leap Motion手势控制Unity游戏,保姆级配置避坑指南(2024版)

2024年Unity手势交互开发实战&#xff1a;Leap Motion从配置到游戏逻辑全解析在游戏开发领域&#xff0c;交互方式的创新往往能带来全新的体验。想象一下&#xff0c;玩家不再需要键盘鼠标&#xff0c;仅凭自然的手部动作就能操控游戏角色——这正是Leap Motion手势识别技术为U…...

UE4SS终极指南:从零开始掌握虚幻引擎脚本系统

UE4SS终极指南&#xff1a;从零开始掌握虚幻引擎脚本系统 【免费下载链接】RE-UE4SS Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games 项目地址: https://gitcode.com/gh_mirrors/re/RE-UE4SS UE4S…...

从单体到事件驱动的生死跃迁:DeepSeek架构委员会认证的6阶段迁移路线图(含风险热力图与回滚触发阈值表)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;从单体到事件驱动的生死跃迁&#xff1a;DeepSeek架构委员会认证的6阶段迁移路线图&#xff08;含风险热力图与回滚触发阈值表&#xff09; 向事件驱动架构&#xff08;EDA&#xff09;演进不是功能迭代&…...

ArduPilot飞行模式实战:从代码角度看Stabilize、Acro、Loiter模式如何切换(附避坑指南)

ArduPilot飞行模式深度解析&#xff1a;从状态机到实战避坑指南 在开源飞控领域&#xff0c;ArduPilot以其强大的飞行模式系统著称。不同于普通用户只需了解模式功能&#xff0c;开发者更需要掌握模式切换的底层机制——这直接关系到飞行安全与二次开发效率。本文将带您深入Sta…...

基于BLE模块的低功耗无线遥控器设计与实现

1. 项目概述&#xff1a;基于BLE模块的无线遥控器设计与实现几年前&#xff0c;我在捣鼓智能家居时&#xff0c;一直想找一个低功耗、响应快、又能自己完全掌控的无线遥控方案。市面上的成品要么协议封闭&#xff0c;要么功耗感人&#xff0c;要么延迟高得让人着急。后来&#…...