当前位置: 首页 > 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…...

谷歌-BERT-第四步:模型部署

1 需求 需求1&#xff1a;基于gradio实现大模型的WEB UI交互界面 2 接口 3 示例 import gradio as gr from transformers import *classifier pipeline("text-classification", model"./model", tokenizer"./model")gr.Interface.from_pipel…...

猫咪化身蒲公英,浮毛满屋乱飞,有哪些宠物空气净化器值得购买?

不掉毛的猫咪究竟是谁在养&#xff1f; 当初去朋友家玩&#xff0c;被猫咪捕获芳心&#xff0c;没多久自己也领养了一只。没想到啊&#xff0c;这就意味着要和猫毛纠缠一辈子了。平时白天上班不在家&#xff0c;它就在一边跑动一边掉毛&#xff0c;回到家我都能推断它的行动路…...

端到端的开源OCR模型:GOT-OCR-2.0,支持场景文本、文档、乐谱、图表、数学公式等内容识别!

今天给大家分享一个端到端的开源 OCR 模型&#xff0c;号称 OCR 2.0&#xff01; 支持场景文本、文档、乐谱、图表、数学公式等内容识别&#xff0c;拿到了 BLEU 0.972 高分。 从给出的演示图来看&#xff0c;一些非常复杂的数学公式都能正确的识别&#xff0c;颇为强大。模型…...

自注意力机制self-attention中QKV矩阵的含义

自注意力机制&#xff08;Self-Attention&#xff09;是Transformer模型的核心组件&#xff0c;其中Q、K、V矩阵分别代表查询&#xff08;Query&#xff09;、键&#xff08;Key&#xff09;、值&#xff08;Value&#xff09;。它们的作用和含义可以通过信息匹配过程来理解。在…...

【前端】Bootstrap:栅格系统 (Grid System)

Bootstrap的栅格系统是该框架的核心部分之一&#xff0c;能够让开发者轻松创建响应式网页布局&#xff0c;适配各种屏幕尺寸和设备。栅格系统通过将页面划分为12列的布局结构&#xff0c;开发者可以根据内容的重要性和设计需求灵活控制元素的宽度和排列。 在这篇文章中&#x…...

一文读懂,SSL证书怎么验签安装使用?

SSL证书目前已经有越来越多的企业网站开始使用&#xff0c;安装SSL证书后&#xff0c;原有的http协议将会变成安全性更好的https加密协议&#xff0c;这对保护用户的信息安全&#xff0c;保障企业及用户的利益起着重要作用。 一张SSL证书的获取&#xff0c;需要经历不少环节&a…...

Mysql(八) --- 视图

文章目录 前言1.什么是视图&#xff1f;2.创建视图3. 使用视图4. 修改数据4.1.注意事项 5. 删除视图6.视图的优点 前言 前面我们学习了索引&#xff0c;这次我们来学习视图 1.什么是视图&#xff1f; 视图是一个虚拟的表&#xff0c;它是基于一个或多个基本表或其他视图的查询…...

SQL注入原理、类型、危害与防御

SQL注入的原理概念 SQL注入是一种常见的网络攻击技术&#xff0c;攻击者通过在Web应用程序的输入字段中注入恶意构造的SQL代码&#xff0c;以欺骗后端数据库执行非预期的SQL命令。这种攻击可以导致数据泄露、权限提升、数据篡改甚至系统瘫痪。SQL注入可以分为多种类型&#xf…...

第2讲 数据库系统的结构抽象与演变

基本内容 数据库系统的标准结构?数据模型?数据库系统的演变与发展?重难点 一组概念的区分:三级模式两层映像,物理独立性和逻辑独立性一组概念的区分:数据→模式→数据模型几种数据模型的差异:网状/层次模型→关系模型→数据模型数据库系统的标准结构 (1)数据库系统的分…...

Git创建开发分支命名规则

git checkout -b feature/branchname 和 git checkout -b branchname 这两条命令的主要区别在于新分支的命名。 主要区别 分支命名&#xff1a; git checkout -b feature/branchname&#xff1a;新分支的名字是 feature/branchname&#xff0c;表示该分支属于一个特性开发&…...