STM32cubeMX配置工程(全过程+修改MCU方法+注意事项)

2023-10-31

1.修改默认的固件包下载路径,避免占用C盘空间

2、选择ACCESS TO MCU

3、在跳出的界面中的Part Number中搜索对应的芯片型号

4、选好后在右下角双击对应的芯片,然后跳出配置界面

左边可以配置外设,右边可以配置每个IO口的功能

  • System Core包括GPIO、RCC时钟、看门狗、DMA等系统外设
  • Analog(模拟)包括ADC、DAC模拟输入输出
  • Timers包括RTC时钟和TIM定时器
  • Connectivity包括串口和所有协议外设
  • Multimedia包括I2S
  • Computing包括CRC
  • Middleware and Software 中间层包括了FR-OS等操作系统和软件包

5、以配置GPIO外设为例

点击System Core,选择GPIO,然后在右边搜索要配置的GPIO,如PB0。搜索后芯片上的PB0引脚闪烁

点击output

左边跳出详细配置

同理添加PB1和PB5

我们点击任一GPIO引脚,下面会跳出引脚配置窗口(其中User Label是自定义用户变量,我们一般不用)

6、配置完外设之后,在SYS里要开启DEBUG功能,这里我们选择串行

7、然后进行时钟的配置

8、配置完设置,进行工程其它选项的配置,在Project中要特别注意编译器的选择

对于固件包的选择,默认是选择最新的,如果没有,软件会自动进行安装,如果想要选择其它版本可以自行添加路径。如果想要下载别的版本固件包,选择help中的以下选项进行安装

9、在Code Generator中,一般配置以下几块,第一个选项一般选择Copy only the necessary library files这样可以减轻编译器负担

在HAL_Settings里第一个选项是将所有引脚设置为模拟模式,这样可以降低单片机的功耗,我们一般不选。第二个Enable Full Assert是使用断言功能,可以简单的理解为一个检测出错的函数,一般也很少有,出现问题一般直接Debug

10、下面进入Advanced Settings中进行外设的库选择,有LL库和HAL库可以选择。下面的窗口可以设置外设的初始化代码的函数名字,以及是否在主函数中调用这个函数,还有该函数是全局可见还是局部可见,不勾选代表不加static。此外可以设置外设函数的调用顺序

11、配置完之后点击右上角GENERATE CODE生成C代码(如果出现警告,点击yes将自动下载芯片包)

12、如果出现如下没有open project选项,代表工程路径存在中文,无法加载。或者是Java sdk版本过高

java版本我的是1.8

我们需要将路径下中文全部修改为英文,重新生成,成功!

13、打开MDK

在main.c如果想要自己写代码要写在begin和end之间

补充:

1.软件包可以在Software Packs选项中进行添加和管理

2.STM32Cube软件具体使用可以在官网下载用户手册

3.所有外设查看外设源文件开头都有介绍每个外设的使用方法。比如To set/reset the level of a pin configured in output mode use

HAL_GPIO_WritePin()/HAL_GPIO_TogglePin()函数。HAL_GPIO_TogglePin()函数可以翻转电平

HAL_GPIO_TogglePin()函数的说明也可以在源文件注释中可知

4.STM 32CUBEMX 如何修改MCU型号

用文件编辑器(记事本,写字板等,我使用的是第三方工具notepad++)直接修改.ioc文件内容

修改前

修改后

修改完成后,保存然后再用CUBE工具打开,可以发现芯片成功换过来了,这个时候只需把需要改动的接口重新配置一下即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32cubeMX配置工程(全过程+修改MCU方法+注意事项) 的相关文章

  • 安全帽佩戴检测算法模型训练详细流程

    一 任务描述 实际施工现场需要对每个进出的人员进行安全帽监测 对未佩戴安全帽的人员平台进行风险告警 通知工作人员并记录下来 主要包括三类目标物体 头盔 helmet 人 person 和人头 head 二 实现流程 1 数据集 直接用的网络
  • C++I/O输入输出

    1 流和缓冲区 我们通常说的流 可以理解为从一个地方流向另一个地方 在C 中的I O是指的输入 输出端口 那么I O流就可以简单的理解为在外部设备和内存之间的数据流动 直白的讲 流实际上是一个字节序列 即 字节流 而C 程序把输入输出看做字
  • WIN11修改右键菜单默认展开

    想要展开右键菜单 像Windows 10那样 首先打开Terminal写入注册表项 展开 reg exe add HKCU Software Classes CLSID 86ca1aa0 34aa 4e8b a509 50c905bae2a
  • JAVA中的数据结构和底层原理

    JAVA中的数据结构简述 JAVA中常用的数据结构主要有这样几种分类 List 可存储相同的值 确切讲是a equals b 时 二者都可存储 我们会挑选适宜连续存储的ArrayList和链式存储的LinkedList进行介绍 Set 不可
  • 数据结构-leetcode-环形链表

    解题图解 代码如下 bool hasCycle struct ListNode head struct ListNode fast head 在这里fast是快指针 head作为low指针 因为这个题不需要做修改也只需返回true或fals
  • Web API

    文章目录 Web API基本认知 获取DOM元素 根据Css选择器来获取DOM元素 其它获取DOM元素方法 操作元素内容 操作元素属性 常用属性 元素样式属性 表单元素属性 定时器 间歇函数 定时器 延时函数 事件监听 事件类型 事件对象

随机推荐

  • RV1126_RV1109从设备树中读取native-mode节点信息流程

    1 video of display timing c struct display timings of get display timings 在该函数中获取native mode节点信息 返回值就是获取到的timing 下步查看谁调用
  • 时序预测

    时序预测 MATLAB实现基于PSO BiLSTM BiLSTM时间序列预测对比 目录 时序预测 MATLAB实现基于PSO BiLSTM BiLSTM时间序列预测对比 效果一览 基本描述 程序设计 参考资料 效果一览 基本描述 MATLA
  • Shiro实战学习笔记(4)- 整合springboot(1)

    1 shiro整合spring boot gt
  • 恒玄BES2300XX系列常用接口(2)

    hal cmu sys reboot 复位 hal norflash disable protection HAL NORFLASH ID 0 flash闪存禁用保护 define ANC MODE SWITCH WITHOUT FADE
  • vue脚手架、npm、node

    vue cli vue脚手架 cli gt command line interface 命令行界面 vue脚手架可以快速 安全的构建vue项目 vue cli 脚手架 需要使用npm cnpm包管理工具进行安装 npm npm是一种js语
  • C++ 一行代码删除string字符串中的“\n“、“\r“、“\t“ 和 所有空白字符

    这篇博客记录如何删除C 字符串中的回车 换行 制表符和所有的空白字符 方式一 示例 std string str n r t abc n t r cba r t n std cout lt lt str lt lt std endl 运行截
  • Websocket握手

    当客户端想要使用 WebSocket 协议与服务端进行通信时 首先需要确定服务端是否支持 WebSocket 协议 因此 WebSocket 协议的第一步是进行握手 WebSocket 握手采用 HTTP Upgrade 机制 客户端可以发
  • gpio子系统在sysfs中构建leds类

    1 内核配置 CONFIG GPIO SYSFS y CONFIG GPIOLIB y 1 CONFIG GPIO SYSFS 决定sysfs是否支持gpio子系统 也就是能否在 sys class 目录下看到gpio类 2 CONFIG
  • lua静态检查

    最近接了个组内的项目 代码是lua开发 由别的人写好 我进行调试 没想到呀 代码写完竟然都没有静态检查 到处都是坑 天了噜 程序员最怕的是什么 填坑呀 还是填别人的坑 没办法 只好一个一个的把坑填上 填完坑 不禁想问 难道写完代码 静态检查
  • Basic Level 1094 谷歌的招聘 (20分)

    题目 2004 年 7 月 谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌 如下图 用于招聘 内容超级简单 就是一个以 com 结尾的网址 而前面的网址是一个 10 位素数 这个素数是自然常数 e 中最早出现的 10 位连续数字 能找
  • redis设置密码加密

    修改redis conf的配置文件 映射或者禁止一些高危命令 后面为空即为禁止 rename command FLUSHALL rename command CONFIG rename command EVAL eg rename comm
  • uniapp中uni-load-more的使用

    1 引入uniloadmore import uniLoadMore from components uni load more uni load more vue components uniLoadMore 2 data中写的内容 re
  • MySQL遇到错误:1217 - Cannot delete or update a parent row: a foreign key constraint fails

    遇到问题 今天在准备 删库跑路 的时候 有的数据表再删除的时候报了以下错误 1217 Cannot delete or update a parent row a foreign key constraint fails 本着有事找度娘的原
  • 设计模式之中介者模式

    中介者模式 1 项目需求 设计一个智能家庭 家庭中包括各种设备 比如闹钟 咖啡机 电视机 窗帘等 完成各个设备之间的协同工作 假设流程为 闹钟响起 gt 咖啡机开始做咖啡 gt 窗帘自动落下 gt 电视机开始播放 这次项目的需求和外观模式一
  • 使用Python,OpenCV进行卡类型及16位卡号数字的OCR

    使用Python OpenCV进行卡类型及16位卡号数字的OCR 1 效果图 2 原理 2 1 OCR A字体 2 2 检测过程步骤 2 3 优化 3 源代码 参考 这篇博客将介绍如何通过OpenCV和Python使用模板匹配执行光学字符识
  • mysql 表级锁之读锁、写锁

    语法 lock tables tablename read write或 lock table tablename read write 表级锁 读锁 当MySQL的一个进程为某一个表开启读锁之后 其他的进程包含自身都没有权利去修改这个表的
  • Advanced Leve 1005 Spell It Right (20 point(s))

    Theme Given a non negative integer N your task is to compute the sum of all the digits of N and output every digit of th
  • CDH6.3.2之Kerberos安全认证

    问题导读 1 Kerberos认证原理是什么 2 Kerberos如何部署 3 CDH集群如何启用Kerberos 4 如何在Kerberos安全环境使用HFDS 01 PART Kerberos简介 Kerberos是一种计算机网络授权协
  • 2、怎么对printf重定向的?

    原文见这篇文章 以及这篇 调试代码时 需要将需要的信息发送到串口 这就要对printf进行重定向 正点原子的重定向代码如下 printf打印串口函数 if 1 pragma import use no semihosting 标准库需要的支
  • STM32cubeMX配置工程(全过程+修改MCU方法+注意事项)

    1 修改默认的固件包下载路径 避免占用C盘空间 2 选择ACCESS TO MCU 3 在跳出的界面中的Part Number中搜索对应的芯片型号 4 选好后在右下角双击对应的芯片 然后跳出配置界面 左边可以配置外设 右边可以配置每个IO口