STM32CubeMX创建STM32H743工程

news2024/12/24 11:29:43

1、下载安装STM32CubeMX

STM32CubeMX是STM32Cube工具家族中的一员,从MCU/MPU选型,引脚配置,系统时钟以及外设时钟设置,到外设参数配置,中间件参数配置,它给STM32开发者们提供了一种简单,方便,并且直观的方式来完成这些工作。所有的配置完成后,它还可以根据所选的IDE生成对应的工程和初始化C代码。除此以外,STM32CubeMX还提供了功耗计算工具,可作为产品设计中功耗评估的参考。

下载地址:STM32CubeMX - STM32Cube初始化代码生成器 - 意法半导体STMicroelectronics

安装完成后,打开STM32CubeMX,先设置下载文件路径。

点击按钮,选择目标文件夹。

下载芯片支持包。

下载之前,记得先要登录ST账号。

2、创建工程

点击New Project的“ACCESS TO MCU SELECTOR”:

可通过搜索等方式选择目标型号的芯片。

双击芯片后可以进入新工程的配置界面。

3、基本配置

3.1、下载口配置

在Pinout&Configuration中左侧选择“DEBUG”,在右侧下拉框中选择自己使用的调试接口。我这里选择“SerialWire”,即SDIO口。可在下方查看SWIO口引脚配置。

选择好后,会在右边看到下载后,被点亮成绿色。

3.2、时钟配置

选择高速时钟,和低速时钟,选择后,会在右边点亮引脚。

时钟口,是外部时钟给芯片提供时钟信号的,高速时钟8-25MHz,低速时钟32.768kHz。

 打开“Clock Configuration”,对时钟树进行配置,选择时钟树后可以选择自己想使用的时钟源(可输入编辑),也可以直接在图中红框中输入主时钟频率,软件会自动对时钟树进行配置。

4、功能配置

4.1、串口配置

配置LPUART1为调试打印输出串口。

4.2、LED输出引脚配置

可以在“System Core”中的GPIO中查找IO引脚进行配置,可以自定义引脚名称。

也可以在芯片图形下方搜索引脚名称,右击该引脚进行配置。

5、实时操作系统配置

5.1、配置FREERTOS

CubeMX支持FreeRTOS,可在“Middleware and Software Packs”中选择FREERTOS,并对其进行配置。

Interface使用 CMSIS_V2 最新的版本,主要是提供相同接口的函数,便于我们编写代码。CMSIS的英文全称是:Common Microcontroller Software Interface Standard,直译过来就是“通用微控制器软件接口标准”;它是一个用来让微控制器开发者减少学习时间、简化软件移植、加速工程创建仿真和加速应用产品上架的工具集合;

CMSIS的作用:
1.提供了接口标准,便于移植和管理
2.提供了很多第三方固件,便于业务开发
3.因为统一了接口,使底层硬件和上层应用耦合降低,更换硬件平台时只需开发人员改变底层硬件的驱动即可,上层业务应用程序无需做改动。

可以点击“Config parameters”等选项卡对FreeRTOS系统进行设置,如点击 add 去创建 任务,互斥量,信号量,队列等,或者右击进行编辑。

5.2、更改系统时钟

由于 FreeRTOS 是基于系统定时器的,所以创建 stm32 工程时要使用其他的定时器来进行计时。这里我使用的是定时器 TIM16。

6、工程配置和输出

6.1、工程设置

点击“ProjectManager”的Project选项卡,设置工程属性。

6.2、代码生成配置

点击Code Generator选项卡,对生成代码进行设置。

由于不同的单片机的性能可能不同,所以这里只添加必须的库即可。设置自动生成 .c/ .h 文件。

6.3、生成工程

点击右上角“GENERATE CODE”,生成工程项目。

然后就会在指定文件夹中生成工程代码。

7、编译运行

用keiluv5打开MDK-ARM中的工程,项目结构代码如下图所示。

编译无问题。

在void MX_GPIO_Init(void)函数中,对LED1引脚进行初始化。相关定义在main.h中!

#define LED1_Pin GPIO_PIN_0
#define LED1_GPIO_Port GPIOB

在任务函数中加入LED点亮和熄灭函数:

下载运行,功能正常!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为OD机试 - 积木最远距离(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

[Everything] 文件搜索工具的下载及详细安装使用过程(附有下载文件)

快速搜索文件名及其所在路径 下载链接在文末 下载压缩包后解压 !!安装路径不要有中文 解压后得到文件 双击exe文件得到 选择简体中文,点击OK 点击“我接受” 更改安装目录,最好不要放在C盘,点击下一步 点击下一步 点…

使用SNAP工具处理Sentinel-1数据应注意磁盘和内存问题

近期使用SNAP处理数据比较多,有一些心得给大家分享一下!在预处理Sentinel-1数据 的过程中出错基本上是有3种情况: 磁盘被写满 由于JAVA优化一般是通过空间换效率的方式。所以SNAP为了提高效率,本版本升级增加了数据本地缓存的比重…

zabbix7.0监控linux主机案例详解

前言 服务端配置 链接: rocky9.2部署zabbix服务端的详细过程 环境 主机ip应用zabbix-server192.168.10.11zabbix本体zabbix-client192.168.10.12zabbix-agent zabbix-server(服务端已配置) 具体实现过程 zabbix-client配置 安装zabbix-agent 添加扩展包 dnf -y instal…

nlp任务之预测中间词-huggingface

目录 1.加载编码器 1.1编码试算 2.加载数据集 3.数据集处理 3.1 map映射:只对数据集中的sentence数据进行编码 3.2用filter()过滤 单词太少的句子过滤掉 3.3截断句子 4.创建数据加载器Dataloader 5. 下游任务模型 6.测试预测代码 7.训练代码 8.保…

MKV转MP4丨FFmpeg的简单命令使用——视频格式转换

MKV是一种视频封装格式,很好用,也是OBS的默认推荐录制格式,因为不会突然断电关机而导致整个视频录制文件丢失。 但是MKV无法直接导入PR中剪辑,最直接的方法是将MKV转换为MP4格式,最方便且安全无损的转换方法便是用FFmp…

AD软件的分屏显示功能

1.鼠标右键点击上面的窗格,选择“垂直分布”,即可以将AD软件分屏,左边选择原理图,右边选择PCB即可以方便去设计PCB的布局。实现原理图和pcb文件的同时查看。 还可以建立起2个图之间的联动关系。 比如我们在电路图里面选择stm32 m…

Threejs中使用A*算法寻路导航

<!DOCTYPE html> <html><head><title>Threejs中使用A*算法寻路导航&#xff0c;Threejs室内室外地图导航</title><script type"text/javascript" src"libs/three.js"></script><script type"text/javas…

MySQL | union all 和union(去重和不去重)

题1&#xff1a; 现在运营想要分别查看学校为山东大学或者性别为男性的用户的device_id、gender、age和gpa数据&#xff0c;请取出相应结果&#xff0c;结果不去重。 示例&#xff1a;user_profile 根据示例&#xff0c;你的查询应返回以下结果&#xff1a; UNION&#xff08…

【C/C++】 秋招常考面试题最全总结(让你有一种相见恨晚的感觉)

目录 1.C程序编译链接过程 2.浅拷贝和move有区别吗 3.深拷贝和浅拷贝的区别 4.空类的大小 5.类的继承有几种方式&#xff0c;区别是什么&#xff1f; 六、extern 关键字的作用 七、static关键字的作用 八、指针和引用的区别 九、C内存分配方式 十、结构体对齐…

manim中的桌面设计和实现转换

在这段代码中&#xff0c;我们实现了一系列富有创意和动态效果的数学表达式展示。这种展示方式不仅能够吸引观众的注意力&#xff0c;还能有效地传达复杂的数学概念。代码主要围绕一个点 dot 展开&#xff0c;它逐步转变为不同的数学公式和符号&#xff0c;每个转变过程都伴随着…

JUC高并发编程5:多线程锁

1 锁的八个问题演示 标准访问&#xff0c;先打印短信还是邮件 class Phone{public synchronized void sendSMS() throws InterruptedException {System.out.println("----------sendSMS");}public synchronized void sendEmail(){System.out.println("-------…

AndroidStudio导入so文件

点击app 右键依次选择New-Floder-JNI Floder 创建jni目录 将需要的so文件拷贝到jni目录 在app目录下&#xff0c;build.gradle文件的android{}中添加&#xff1a; sourceSets {main{jniLibs.srcDirs [src/main/jni]}}点击一下Sync Project with Gradle Files 然后编译生成AP…

第7届医联赛圆满举行,鱼跃医疗连续6年保障赛事安全

9月22日-26日&#xff0c;第7届医联赛戈壁群英会在甘肃瓜州举行&#xff0c;来自全国各地的3000名医药行业企业家代表齐聚一堂&#xff0c;开启为期3天的身心极限挑战——徒步穿越81公里的戈壁滩。鱼跃医疗连续6年全程保障参赛者的生命安全&#xff0c;助力赛事圆满完成。 鱼跃…

大模型初学者指南:笔记本电脑上用 ollama 运行大模型!

之前国外有一初学者小哥在Google Colab&#xff08;A100 40G&#xff09;利用DPO微调Mistral 7B&#xff0c;微调后的模型在基准测试中取得不错的成绩&#xff0c;从那时起&#xff0c;我觉得在笔记本电脑上运行/微调大模型并非遥不可及的。 对于初学者而言&#xff0c;如果能…

[论文精读]Multi-Channel Graph Neural Network for Entity Alignment

论文网址&#xff1a;Multi-Channel Graph Neural Network for Entity Alignment (aclanthology.org) 论文代码&#xff1a;https:// github.com/thunlp/MuGNN 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&a…

插上网线无法连接网络,控制面板以太网消失 | 如何重装网络驱动

如果你确定你的网线没问题&#xff0c;网线插口没问题&#xff0c;那你大概率就是驱动问题&#xff0c;可以试一下本方法。 0 以太网消失 事情是这样的&#xff0c;我工作时候需要接内网&#xff0c;插网线&#xff0c;摸鱼时候连外网&#xff0c;我就把网线关了。 每次插网线…

飞致云开源社区月度动态报告(2024年9月)

自2023年6月起&#xff0c;中国领先的开源软件公司FIT2CLOUD飞致云以月度为单位发布《飞致云开源社区月度动态报告》&#xff0c;旨在向广大社区用户同步飞致云旗下系列开源软件的发展情况&#xff0c;以及当月主要的产品新版本发布、社区运营成果等相关信息。 飞致云开源运营…

STM32F1+HAL库+FreeTOTS学习13——二值信号量

STM32F1HAL库FreeTOTS学习13——二值信号量 1. 信号量2. 二值信号量3. 相关API函数3.1 创建二值信号量3.2 获取信号量3.3 释放信号量3.4 删除信号量 4. 二值信号量操作实验1. 实验内容2. 代码实现&#xff1a;3. 运行结果 上一期我们学习了FreeRTOS中的队列&#xff0c;这一期我…