自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (13)
  • 收藏
  • 关注

原创 STM32H5 的 PB14 引脚被意外拉低的问题解析

摘要:STM32H523RET6应用中配置PC9为输出、PB14为输入时,发现PC9输出高电平时PB14被意外拉低。经分析,这是由于STM32H5默认激活了UCPD的Dead Battery功能,当PC9(复用为UCPD1_DBCC2引脚)电压超过1V时,会激活内部下拉电阻将PB14拉低。解决方案包括在代码中禁用DB功能(HAL_PWREx_DisableUCPDDeadBattery()),并建议在PC9外接100K下拉电阻。该问题在STM32G0中可通过CubeMX配置,而STM32H5的CubeMX版

2025-10-22 14:42:46 1244

原创 KEIL 环境下 printf 导致程序无法执行的解决方案

摘要:在MDK Keil环境下调用printf函数导致程序卡在BKPT指令的问题,是由于未启用MicroLIB时默认使用Semihosting机制与调试器交互所致。解决方法包括:1)启用CMSIS-Compiler CORE组件;2)将STDOUT设置为Custom选项并实现用户接口;3)重新编译后程序即可正常运行。该方法避免了Semihosting依赖,适用于无法使用MicroLIB的场景。

2025-10-22 14:41:32 1000

原创 STM32N6 平台如何使用 MCO2 输出 Clock

STM32N6 是 ST 第一款带 NPU 的基于 Cortex-M55 内核的 MCU,在 STM32N6 开发过程中,有客户遇到 MCO2 无输出问题,他们使用 24MHz 外部晶振,使用 RCC HAL API HAL_RCC_MCOConfig 设置 MCO2 输出,参数选择 RCC_MCO2, RCC_MCO2SOURCE_HSE, RCC_MCODIV_1,期待获得 24MHz 输出波形,但 MCO2 管脚一直没有输出。这里,我们发现 MCO2 (PC9) 管脚是由 VDDIO4 独立供电的。

2025-04-17 14:00:10 854

原创 STM32CubeIDE 实用技巧之条件断点的妙用

在嵌入式项目中,我们经常会碰到各种各样的异常和故障,比如客户说,某个问题可能需要一天,一周,甚至以月为周期才能复现一次问题。诸如此类问题,着实令工程师苦恼,因为很难去捕获信息来分析和复现问题,这里给大家分享一些我的经验和技巧。

2025-04-17 09:40:39 1694 1

原创 两个 STM32G0 I2C 通信异常的案例分析

后面让客户用示波器抓取 SCL 波形,并且建议在 I2C GPIO 配置为开漏模式时测量上升沿上升的时间,如下图三,在上拉电阻为 4.7K 时,Rise time 是 180ns 左右,符合规格书要求。但问题是功耗变大,客户不接受改小上拉电阻。如上图寄存器状态看,确实是发生了 BERR 错误,并且示波器抓的图形看,发现最后一个NACK 的上升沿变化时,SCL 看起来是为高的。进一步的分析是看谁把 SDA 的电平拉低,建议客户在 SCL,SDA 线路接电阻测量出问题时,I2C 主从两端的电压变化。

2025-04-16 11:42:54 2244

原创 Cortex-M核除0操作的报错机制话题

除 0 操作属于错误操作,在 ARM Cortex M 平台上会有相应的报错机制。但这边会涉及到整型数的除 0 以及浮点数的除 0,另外还会涉及错误产生后的报错机制,是中断还是错误位,本文会对这个报错机制加以说明。使用 STM32H723 做为测试芯片。

2025-04-16 11:08:55 409

原创 如何通过DMA配合CRC功能

STM32 的 CRC 外设是用来实现 CRC 计算的硬件单元,硬件实现 CRC 计算相对于软件算法实现来说,可以大大提高运算速度。CRC 计算单元具有单个 32 位读/写数据寄存器(CRC_DR)。它用于输入新数据(写访问)并保存以前的 CRC 计算结果(读访问)。当 DMA用作数据传输处理器时,可以极大地减轻 CPU 负荷。本文以 STM32G474 为例,介绍如何通过 DMA 配合 CRC 计算,以供读者参考。

2025-04-15 14:13:00 1332

原创 STM32C0 HAL 库的 SPI 驱动导致的 Hardfault 问题分析

在项目开发中使用 STM32C071 作为主控 MCU,驱动代码使用了版本STM32Cube_FW_C0_V1.2.0,应用程序调用 SPI HAL API 与 NFC 模块通信,SPI 工作在Master 模式,调用 HAL_SPI_Transmit 函数发送数据的时候,出现 Hardfault 现象,同时客户反馈同样的应用程序代码在 STM32G0 平台上,没有出现类似的问题,客户不得其解。根据客户反馈的现象,本文分析其原因以及解决方法。

2025-04-15 08:40:25 919

原创 SPI 传输长度超过 1024 时出现异常的问题分析

使用 STM32U595QII6Q 开发产品时发现,使用该芯片的 SPI3 与对方通信时,如果发送的数据超过 1024 字节时,SPI3 作为主设备,使用 HAL 库的 SPI 相关发送函数,发送完成回调函数不会执行。因为依据手册,对于 SPI3,最大支持的长度为 1023 字节,而 1024 字节超过了最大长度,因此设置失败。单步调试发现,在函数 HAL_SPI_TransmitReceive_DMA,执行以下代码片段时,修改 CR2 寄存器失败,因此 CR2 的值一直未 0。

2025-04-14 13:50:52 597

原创 STM32G0 单线串口通信帧错误问题解析

所以在这个单线串口的设计中,STM32G0 要保持和 STM32L433 的配置一致,也就是上面提到的 GPIO 下拉,TX,RX 通过软件切换并且 TX,RX 电平反向。客户的答复是这是保留上一代产品的设计,新一代的产品设计只是因为成本,将两颗 MCU中的一颗 MCU 更换为了 STM32G0,而原来 STM32L433 上的软件是不能更改的。对于客户奇怪的单线串口设计,我们首先的疑问是为什么不直接使用参考手册提供的现成的单线串口半双工通信方法,而是要自己去实现一套软件切 TX,RX 的单线半双工通信。

2025-04-14 13:39:27 1483

原创 高精度定时器如何实现 PWM 零满占空比的连续切换

在《高精度定时器如何输出零占空比与满占空比 PWM 波形》一文中,我们分享了在高精度定时器中 PWM 输出零占空比和满占空比的方法,但是在实际的应用中还会存在零占空比和满占空比连续切换的情况,在原有的 PWM 发波方式上,若是采样 up-down count 模式的话要实现这种连续切换会存在一些问题,本文将分析相关问题,并给出更加合适的方案来实现 PWM 零-满占空比的连续切换。

2025-04-11 09:02:58 1092

原创 在 STM32 中实现电机测速的方法介绍

在电机控制类应用中,经常会需要对电机转速进行检测,测速常用的方式有 M 法测速和 T法测速。M 法测速是利用在规定时间 Ts 内编码器输出脉冲数量 M1 计算电机转速,如下图所示,信号 A 和 B 为正交编码器的输出信号,C 解码后的计数脉冲(4x)。单位时间(1s)内编码器输出脉冲数量,即脉冲频率:𝑓𝑐 = 𝑀1⁄𝑇𝑠假设电机每旋转一圈正交编码器(4x)的输出脉冲数量为 Z,则电机转速为:r/min 代表圈/分钟。

2025-04-11 08:53:40 2636

原创 奇怪的 NRST 管脚异常复位问题

MCU 内部是远比 MCU 外部电路更复杂的微电子电路,内部线路间距小,不同功能间可能只是由电子开关或多路复用器做选择,当高频干扰进入 MCU 后,干扰可以在看似不直接相连的电路间耦合而影响 MCU 的正常工作。重要的是避免干扰进入 MCU。在排查干扰传递的路径时,不要将目光局限于直接相连的电路或管脚。

2024-04-19 15:48:34 2053

原创 简谈 BlueNRG-LP 和-LPS 的代码空间优化

Linker 中可定义一些宏、用于指定链接脚本文件所需的配置。这些宏定义不作用于.c文件或者.h文件,只作用于链接文件(.icf 或者.sct 或者 *.ld)。SDK 中默认提供了 4 种默认配置的协议栈加一种自定义的协议栈配置(BLE_STACK_CUSTOM_CONF),如下图所示。上述 5 种不同协议栈的配置,本质上就是通过使用宏控制不同的特性功能是否打开。只是前面 4种提供了默认便捷的设置,而最后一种可以进行细粒度更细的自定义的协议栈。

2024-04-19 14:44:51 1249

原创 关于蓝牙连接参数更新进程后导致断连的问题分析

通常客户在做低功耗蓝牙模块设计的时候,如果蓝牙模块在实际使用场景中和手持移动设备(如手机等)绑定使用的话,往往会非常注意蓝牙模块与不同品牌、不同型号的手机的兼容性测试。这些测试项目可能包括长时间连接状态的保持,频繁建立连接,或主动断连后再次建立连接等场景。

2024-04-18 16:20:50 1329

原创 BlueNRG-X 原理图参数说明

为了让客户在原理图设计阶段少走弯路,我这里结合客户评估和设计阶段常遇到的问题,整理了一下 BlueNRG-1/-2 相关设计及注意事项以备客户解惑用。

2024-04-18 16:12:00 1186

原创 STM32芯片软复位导致SRAM2的值被擦除话题

客户在使用 STM32L433CCY6 开发过程中,出现软件复位后 SRAM2 里的值被擦除问题。

2024-04-16 14:05:49 1355

原创 程序运行在 STM32H750 的外扩 FLASH 上两小时后死机

客户使用 STM32H750VBT6,通过 QSPI 外扩了一个 4M 的 NOR FLASH,采用memory map 模式。当程序跳转运行到外设 FLASH 后,大约两个小时后程序死机。客户使用的 IDE 是 KEIL,此问题可以固定重现。在 KEIL 调试模式下重现问题时,通过多次观察发现,程序死的位置总体上会停在两个位置,并不是同一个位置。一个是 TIM15函数的入口;另一个是进入中断函数后的一个赋值语句。

2024-04-16 09:01:39 2331

原创 STM32 SPI NSS 功能的灵活应用案例

某客户开发一款高精度工业测量仪器,打算使用 STM32H7+外置高精度 ADC 采样的分离方案来实现。客户选取了一款所属行业内比较通用的 ADC 采样芯片。在读取该 ADC芯片手册后,客户发现该款 ADC 采样芯片使用 MCU 标准 SPI 与之通信存在问题,手册里面也推荐使用 DSP/FPGA 的来实现,客户一下就犯难了。为了降低成本和开发周期,客户想使用 MCU 来替代 DSP/FPGA 与 ADC 采样芯片的高速通信。

2024-04-15 11:36:55 1346

原创 通过 LSE 校准 HSI 偏差大的问题解决

某客户使用 STM8AL 时,由于设计限制需使用 HSI 作为系统时钟。为减小 HSI 偏差,使用 LSE 对其进行校准。小批量试产发现 3%左右产品校准后频率和 16MHz 偏差较大。

2024-04-15 11:26:10 929

原创 如何理解 RAMECC FAR 寄存器的值

某客户测试 STM32H753xi 板子上的 ECC 功能,用于监控 AXI-SRAM 区域,但不是很明白 RAMECC FAR 寄存器在 RM0433 中的描述, “Bits 31:0 FADD[31:0]: ECC error failing address”。比如在 AXI-SRAM 中,如果客户示例显示的是 FAR = 0x2004,但是这个地址值 0x2004 并不在 AXI-SRAM 范围之内,客户该如何理解 FAR 寄存器?

2024-04-13 14:22:22 1091

原创 关闭 SPI 会导致 WRPERR 错误的问题分析

在 STM32 的应用中,SPI 算是用的比较多的外设了,也是单片机最常见外设之一。客户说它执行了关闭 SPI 的代码,竟然会导致 Flash 中的 WRPERR 标志置位,致使应用碰到一些问题。这就奇怪了,SPI 和内部 Flash 看起来是风马牛不相及的事情,为什么会发生这种事呢?一起来看看吧。

2024-04-13 14:01:52 1294

原创 高精度定时器中 single-shot 计数模式不工作

客户使用 STM32G474 的高精度定时器,基于 CubeMX 进行外设配置与代码生成,将某个子定时器的计数方式设置为 retriggerable single shot 方式,发现该子定时器无 PWM 输出,在调试模式下发现该子定时器的计数器一直为 0,即计数器一直没有启动,但如果将计数方式修改为continuous 模式,其他保持不变,定时器工作正常。

2024-04-12 20:04:09 1149

原创 STM32 DCMI 的带宽与性能介绍

随着市场对更高图像质量的需求不断增加,成像技术持续发展,各种新兴技术(例如3D、计算、运动和红外线)的不断涌现。如今的成像应用对高质量、易用性、能耗效率、高集成度、快速上市和成本效益提出了全面要求。为了满足这些要求,STM32 MCU 内置的数字照相机接口(DCMI),能够高效连接并行照相机模块。对于使用 STM32 DCMI 开发相机应用的客户,经常有以下问题:STM32 DCMI 最大支持的像素时钟是多少?STM32F4/F7/H7/U5 能支持 1280×720 的相机分辨率吗?最大的帧率是多少?

2024-04-12 18:27:50 1953

原创 在 Keil 中使用 STM32CubeProgrammer

STM32 MCU 新产品的早期用户有时候会遇见工具链还在完善中的情形,例如,一部分STM32 工具已经支持该产品,而另外一部分 STM32 工具还在更新中。具体到 Keil 用户,用户有可能可以使用 STM32CubeProgrammer 进行下载,但是 Keil 编译器中支持该产品系列的软件 Pack 还需要一些时间才会被更新。从而,用户能够使用 Keil 编译器进行编译甚至调试,但没法直接在 Keil 环境中对新产品进行下载。

2024-04-12 11:20:47 1366

原创 TouchGFX 控件附加 ClickListener 功能的方法介绍

模板一般分为函数模板和类模板。函数模板我们这里不做赘述,重点关注 TouchGFX Mixins 类模板。TouchGFX 的 Mixins 类模板用于拓展控件的功能,目前 TouchGFX v4.20.0 中有四个 Mixin 功能,分别是 Draggable、ClickListener、FadeAnimator 和MoveAnimator,分别为控件增添相关功能。如图 1 (TouchGFX Designer Mixins 功能)所示,本文主要针对 ClickListener 做具体介绍。

2024-04-12 09:21:55 1041

原创 使用 NANOEDGE.AI 工具完成人体姿态识别应用

NanoEdge™ AI 库是 Cartesiam 推出的人工智能静态库,它可以帮助客户直接生成可以运行在嵌入式 Arm Cortex 处理器上的.a 静态库文件。2021 年 ST 收购 Cartesiam,完善了 ST 在 AI 领域的生态,大大降低了客户使用 STM32 开发 AI 应用的难度。通过使用 NanoEdge AI Studio,用户只需要了解基本的 AI 概念,并提供相应的数据,便可以从众多 AI 算法库中智能搜索和生成出最符合用户应用的算法。

2024-04-11 11:13:24 2758 1

原创 通过 KEIL 制作 QSPI 接口的外部 Flash 下载算法

随着用户的应用越来越复杂以及 GUI 等需要大存储空间的需求越来越多,很多时候我们需要将代码或数据放在外扩的 Flash 存储空间。但是这样存在一个外部 Flash 烧写的问题,尤其是在应用调试时,需要将代码或数据烧录到外部 Flash。如果调试工具不能够一键烧录,势必会给调试带来诸多的麻烦。本文以 STM32H750 芯片为例,介绍通过 KEIL制作 QSPI 接口的外部 Flash 下载算法的方法。

2024-04-11 08:43:47 2222

原创 BlueNRG系列芯片Flash操作与BLE事件的互斥处理

在许多基于 BlueNRG-1/2 系列芯片的低功耗蓝牙的设计项目时,客户通常会在 Flash的特定区域存储定制的数据。然而需要特别注意的是,在 BlueNRG-1/2 方案中,用户对Flash 的读写操作必须在射频空闲的情况下进行,两者是互斥的关系。

2024-04-10 14:31:22 1509

原创 Arm-v7-M 架构的 STM32 如何启用 DWT 计数

客户在使用 STM32H7 的时候,想要使用 DWT 计数来测量代码执行时间,评估执行效率。客户发现在重新上电或 reset 后,无法启用 DWT 进行计数。

2024-04-10 13:42:30 668

原创 如何选择和设置外部晶体适配 BlueNRG-X

鉴于经常有客户对如何选择外部低速晶体,如何测试外部 32khz 时钟,如何直接使用外部32khz 信号源 以及 如何选择外部高速晶体,如何测试和校准频偏存在诸多困惑,我整理了该文档以备解惑用。

2024-04-09 09:14:43 1123

原创 关于 BlueNRG-2 在低功耗模式下的端口保持

BlueNRG-2 作为一款高性能低成本的低功耗蓝牙 SoC 解决方案,实现了在有限的资源下兼容蓝牙 5.2 协议的功能。客户在使用 BlueNRG-2 芯片设计产品时,通常会将其当作方案中的主控芯片来用,控制外围器件,最常见的应用就是使用 GPIO 输出高低电平控制外部器件或作为某些器件的开关使能信号,本文讨论下 BlueNRG-2 在低功耗模式下,客户关于 GPIO 口使用上的一些常见问题。

2024-04-09 09:13:59 842

原创 BlueNRG-X 如何实现外部天线和 PA 的控制

BlueNRG-1 提供了 ANATEST1(用于 QFN32 封装(PIN 14)和 WCSP34 封装(PIN D4)), 它可以提醒未来的发送或接收事件。对于其它GPIO 的使用,在原理图设计阶段也需要关注表中在低功耗模式下的默认值。关于外加 PA 的实现,本文以 RFX2401C 和 RT201 为例进行硬件和软件配置的说明;关于 WIFI 和 BLE 共用一个天线,本文以 BlueNRG-1 为例进行硬件和软件配置的说明,希望通过以上的例子能够给客户在相关应用场景的设计提供一个参考。

2024-04-08 13:48:03 1822

原创 PWM 脉宽跟随方案介绍

数字电源产品在使用桥式电路拓扑或是多路交错控制中,有时会需要滞后臂的 PWM 脉宽严格跟随超前臂的 PWM 脉宽,或从路的 PWM 脉宽严格跟随主路的 PWM 脉宽,本文将介绍如何利用高精度定时器实现 PWM 输出脉宽跟随,一种使用 Push-pull + Balance Idle + Auto Enable 方式,一种是使用 Auto Delay 方式。

2024-04-08 09:13:52 1236

原创 S2-LP 的 FIFO 机制

众所周知,S2-LP 拥有两个数据 FIFO,一个用于数据传送,另外一个用于数据接收,它们各自的长度均为 128 字节。针对普通的小数据量而言,128 字节长度的 FIFO 基本上可以满足大部分应用。但是,随着应用越来越复杂以及对数据量的需求越来越大,128 字节就不够用了,此时就需要对 FIFO 进行管控,才能接收或者发送更多的数据。本文将详细介绍 S2-LP 针对大数量场景时的 FIFO 机制。

2024-04-07 14:28:03 1272

原创 基于 S2-LP 实现 802.15.4g 帧格式的数据透传

S2-LP 硬件上支持 802.15.4g 的帧格式,但是现有的 SDK 包并没有基于该帧格式的示例工程,因此本篇文章将介绍如何实现基于 802.15.4g 帧格式的数据透传。

2024-04-07 14:27:23 1251

原创 如何将普通应用更改为 OTA APP

BlueNRG-LP 方案中提供了 2 种 OTA 的软件框架,分别是 OTA Reset Manager 框架和OTA Service Manager 框架。不同框架下程序在 Flash 的分别位置和区域图 1 所示。图1. OTA 软件升级框架Reset Manager,负责程序的跳转,根据有效标志选择执行 Higher APP 还是 LowerAPP。Higher APP 和 Lower APP 是客户不同版本的应用程序,同一时间运行其后一个升级的版本。

2024-04-06 08:54:26 1142

原创 关于 STM32WL LSE 添加反馈电阻后无法起振问题

客户调试 STM32WLE5JB 样机的时候遇到这样一个问题:在调试 LPUART,不打开外部时钟的时候,能够正常打印,若开启外部的 HSE 和 LSE 后就没有打印。

2024-04-06 08:31:00 1115

原创 巧用 STM32CubeIDE 之编译警告

编译警告对于工程师们来说,是再常见不过的了。对于严谨的工程师们来说,任何warning 都是不可忽视的。

2024-04-06 08:23:11 1409

原创 AFCI 应用笔记三、使用 mlflow 管理模型

超参数的选择不是一件容易的事情,需要大量的实验以得到稳定可靠的结论。模型实验对数据的质量要求很高,稳定可靠的数据才能得到可靠的结论,否则实际部署会存在较大差异。从文中图中可以看到,不一定采样率越高越好,帧长越长越好,相反,较低的采样率和帧长可以大大节省 Flash 和 Ram 的空间,以及减少推断时间。目前测试进行的实验次数仍然较少,可能得到的结论不一定非常准确,本文中的实验全部使用了相同的数据集和相同的网络模型,以减少评估参数。客户可以根据实际需要,使用更多的模型,更多的测试参数进行实验。

2024-04-05 09:32:08 1640 1

LAT1561-MC-SDK-V6.x软件HSO参数说明-V1.0

内容概要:本文详细介绍了在MC SDK V6.x软件中集成的高灵敏度无传感观测器算法HSO的关键参数配置方法,涵盖电流基值、端电压基值、频率基值、采样延迟、角度补偿因数等核心参数的计算与设置原则,并说明了辅助电压保护功能(回馈与加速电压保护)及软件过流保护的配置策略,旨在帮助开发者正确初始化和调试HSO算法。; 适合人群:从事电机控制开发的工程师,特别是使用ST平台进行无传感器控制算法调试的技术人员,具备一定电力电子与控制理论基础的研发人员。; 使用场景及目标:①指导MC SDK V6.x中HSO算法的初始参数配置;②优化电机控制系统中的电流、电压、频率采样精度与动态响应;③实现稳定的速度闭环控制并避免电流过冲等问题; 阅读建议:本文以具体硬件平台和电机型号为例,建议读者结合自身系统参数对照计算,实际调试时应在Motor Pilot等工具辅助下动态调整关键参数,尤其注意角度补偿因数和采样延迟的现场优化。

2025-11-05

LAT1551 创建在PC上验证X-Cube-AI算法的工程-v1.0

内容概要:本文介绍了如何在PC上使用STM32CubeIDE和X-Cube-AI工具创建一个用于验证AI算法的工程,提升算法验证效率。通过构建包含X-Cube-AI生成模型代码和上位机支持文件的项目结构,配置开发环境并修改主函数调用相关初始化和处理接口,实现对AI算法的批量自动化测试。该方法避免了手动验证数据的低效与遗漏,支持在桌面端以C语言完整运行和验证嵌入式AI算法。; 适合人群:熟悉STM32开发环境并有一定嵌入式AI应用经验的工程师,具备C语言编程能力和基本的AI模型部署知识的研发人员; 使用场景及目标:①在PC端搭建X-Cube-AI算法验证环境,实现大数据量自动测试;②通过上位机工具快速调试和评估模型推理结果,提升开发迭代效率;③实现跨平台算法验证,确保模型在嵌入式设备部署前的准确性与稳定性; 阅读建议:此资源侧重于工程搭建与环境配置,建议读者结合实际X-Cube-AI生成的模型代码,按照文档步骤逐步操作,并注意路径设置、库文件链接及头文件兼容性处理,确保工程正确编译与运行。

2025-11-05

LAT1521 STM32U5外部中断不响应问题分析-v1.0

内容概要:本文分析了STM32U5系列微控制器在BOOT程序跳转到APP程序过程中偶发性外部中断不响应的问题。通过实验复现发现,在第二次初始化EXTI(外部中断)时,尽管未更改配置,但由于对EXTICR寄存器的操作会触发内部多路复用器(MUX)切换,导致短暂的中断响应窗口丢失,从而造成上升沿中断未能被正确捕获。测试使用NUCLEO-STM32U575和NUCLEO-STM32H503平台,结合示波器波形分析,定位问题发生在EXTICR寄存器写入期间。最终结论为:即使不改变EXTICR值,其写操作本身也会引起中断敏感时段,建议仅在BOOT阶段完成一次EXTI初始化,避免重复初始化。; 适合人群:嵌入式系统工程师、STM32开发者、固件开发技术人员,特别是有低功耗、中断响应可靠性要求的应用开发者;具备一定MCU外设寄存器操作经验的1-3年经验研发人员。; 使用场景及目标:①解决STM32U5在多阶段程序跳转时外部中断丢失问题;②优化BOOT和APP间的资源初始化策略;③提升对EXTI底层机制(如MUX切换、寄存器操作时序影响)的理解与规避设计风险; 阅读建议:此文档基于真实问题案例,结合硬件测试与寄存器级分析,建议读者结合STM32U5参考手册RM0456及相关Cube工具链进行实践验证,并重点关注外设初始化时序与中断敏感窗口的设计规范。

2025-11-05

LAT1549 使用STM32CubeIDE开发上位机工具-v1.0

内容概要:本文介绍了如何使用STM32CubeIDE结合MinGW GCC在Windows环境下开发上位机工具,通过配置C语言开发环境,实现与STM32 MCU开发一致的编码、编译和调试体验。文章以创建一个“Hello World”项目为例,详细演示了工程创建、编译工具链设置、构建与调试流程,强调该方法便于MCU开发者在PC端快速验证算法逻辑,尤其适用于基于C语言实现的嵌入式算法(如X-CUBE-AI生成代码)的前期测试与验证。; 适合人群:熟悉STM32开发和C语言,具备一定嵌入式开发经验的工程师,尤其是从事算法移植与验证的研发人员;适合希望复用MCU开发技能进行桌面工具开发的技术人员。; 使用场景及目标:①在PC端快速搭建与STM32一致的C语言验证环境,用于算法原型测试;②避免切换开发语言或环境带来的差异问题,提升开发效率;③利用STM32CubeIDE的熟悉界面进行上位机小工具开发,降低学习成本。; 阅读建议:此资源以实践为导向,建议读者按照步骤安装MinGW并配置系统路径,动手完成工程创建、编译与调试全过程。在掌握基础流程后,可将实际MCU算法代码迁移至该环境进行功能验证,注意保持代码可移植性,并关注gcc与嵌入式编译器间的细微差异。

2025-11-05

LAT1545 DFSDM输入模式以及配置说明-V1.0

内容概要:本文详细介绍了STM32H723微控制器中DFSDM(数字滤波器用于Σ-Δ调制器)模块的输入模式及其配置方法,重点讲解并行模式和串行模式的工作原理与实际配置步骤。并行模式支持来自内部寄存器或ADC模块的数据输入,适用于内部信号处理和测试;串行模式则支持SPI和曼彻斯特协议格式,用于接收外部Σ-Δ调制器或PDM麦克风的数据。文中通过CubeMX配置示例、代码片段及硬件连接说明,展示了通道与滤波器的映射关系、数据输入方式、触发机制以及结果读取流程,并澄清了关于ADC与通道对应关系的常见误解。; 适合人群:嵌入式系统工程师、STM32开发者、具备一定MCU外设使用经验的技术人员; 使用场景及目标:①掌握DFSDM在并行和串行输入模式下的配置方法;②理解通道与滤波器的灵活映射机制;③实现ADC与DFSDM协同工作或外部Σ-Δ/PDM信号采集;④辅助调试和验证DFSDM功能; 阅读建议:建议结合Nucleo-H723ZG开发板实践文中配置案例,对照参考手册理解寄存器操作,并注意官方文档更新以避免信息偏差。

2025-11-05

LAT1475 STM32G474 勘误手册中SRAM Write Error详解-V1.0

内容概要:本文详细解析了STM32G474微控制器在特定条件下可能出现的“SRAM Write Error”问题,源自其勘误手册ES0430的2.2.7章节。该问题与SRAM状态机在异常复位期间未能正确恢复有关,尤其当复位发生在SRAM写操作过程中时,可能导致首次写入失败。文章阐述了问题的成因、复现方法、发生概率及潜在影响,并通过IAR和Keil两个开发环境下的实验,分析了不同启动代码(startup code)执行顺序对问题风险的影响。同时提供了官方workaround解决方案——在Reset_Handler初期对各SRAM段执行一次 dummy读操作以恢复状态机,并给出了适用于不同IDE的汇编代码实例。最后提出了针对不同应用场景的代码实施建议,特别是对启用奇偶校验(Parity check)的SRAM应进行初始化以防止校验错误。; 适合人群:使用STM32G4系列MCU的嵌入式软件工程师、固件开发者、技术支持人员,以及对MCU底层行为和可靠性设计感兴趣的研发人员;需具备一定的ARM Cortex-M架构和启动流程知识。; 使用场景及目标:①帮助开发者理解STM32G474中SRAM Write Error的机制及其对系统稳定性的影响;②指导在实际项目中判断是否需要实施workaround措施;③提供可在IAR、Keil、STM32CubeIDE等主流开发环境中集成的修复代码;④为高安全性和高可靠性要求的应用提供最佳实践建议。; 阅读建议:此资源以技术分析和实验证据为基础,建议结合实际工程和调试工具(如反汇编、内存视图)进行验证,重点关注启动流程中对SRAM的首次访问顺序,并根据.map文件评估全局变量布局对风险的影响。

2025-11-05

LAT1553 如何使用高级定时器产生双沿可控PWM-v1.0

内容概要:本文介绍了如何利用STM32G4系列MCU中的高级控制定时器,通过组合PWM模式(Combined PWM mode 2)实现双沿可控的PWM信号输出。详细说明了该模式下各通道的工作机制,如TIM1_CH1和CH2配合实现上升沿与下降沿独立控制,并通过CCR寄存器分别设定边沿位置,从而灵活调节占空比,支持0%和100%极端占空比输出。同时对比了非对称PWM模式的局限性,突出组合模式在灵活性上的优势,可作为HRPWM的补充用于复杂功率拓扑控制。; 适合人群:具备嵌入式系统基础、熟悉STM32定时器功能的电子工程师或研发人员,尤其适用于从事数字电源、电机控制等需要高精度PWM的应用开发者; 使用场景及目标:①实现PWM上升沿和下降沿独立精确控制,满足特定控制算法需求;②在不增加外部逻辑器件的情况下,提升PWM波形调控灵活性,应用于数字能源、功率变换等领域; 阅读建议:建议结合STM32CubeMX工具进行配置实践,重点关注通道模式设置与寄存器关系,并通过示波器验证输出波形,确保理解“与”逻辑合成PWM的实际效果。

2025-11-05

LAT1552 STM32N6-AI Image Classification工程git bash命令行的使用示例-v1.0

内容概要:本文详细介绍了基于STM32N6-AI图像分类工程在git bash命令行环境下的完整操作流程,涵盖从编译、调试到烧录的全过程。重点演示了如何使用Makefile进行工程编译,通过GDB Server与GDB Client实现远程调试,设置断点、查看变量与内存、监控寄存器变化,并最终将签名后的应用程序烧录至外部Flash运行。文中结合具体命令行实例,逐步引导用户完成AI模型部署,适用于希望脱离IDE、采用命令行开发调试的嵌入式开发者。; 适合人群:具备嵌入式开发基础,熟悉ARM Cortex-M系列MCU及基本Linux命令行操作的工程师,尤其是从事STM32平台AI应用开发的技术人员;有一定工作经验(1-3年)的研发人员更为合适; 使用场景及目标:①掌握STM32N6-AI图像分类工程的命令行编译与调试方法;②学习如何在无IDE环境下使用make、gdb、STM32_Programmer_CLI等工具链进行嵌入式开发;③实现AI模型在STM32N6开发板上的部署与性能测试; 阅读建议:建议读者提前准备好STM32N6-DK开发板及相关软件工具链,在实际环境中同步操作文档中的每一步命令,重点关注环境变量配置、GDB调试技巧及外部Flash烧录流程,结合官方文档深入理解底层机制。

2025-11-05

LAT6033 STM32MPU的ROMCode跟踪调试-v1.0

内容概要:本文详细介绍了STM32MPU系列芯片中ROM Code的跟踪调试方法,重点针对启动失败时的故障排查。ROM Code是系统复位后由Arm Cortex-A内核执行的第一段固化代码,负责启动设备识别、用户镜像加载及安全启动等功能。当启动失败时,可通过特定GPIO状态指示或ROM trace方式进行错误定位。文章分别讲解了STM32MP1和STM32MP2系列在不同平台(Ubuntu/Windows)下利用ST-LINK和OpenOCD工具获取ROM trace二进制数据的方法,并提供了相应的命令示例与常见问题解决方案。此外,还说明了如何通过Python脚本解析trace日志(适用于MP1系列)或直接查看串口输出(适用于MP2系列)进行问题分析,帮助开发者快速定位如外设未识别等启动异常。; 适合人群:嵌入式系统开发工程师、STM32MPU平台开发者、固件调试技术人员,具备一定硬件调试经验和软件开发基础的技术人员; 使用场景及目标:①系统启动失败时快速定位ROM Code执行阶段的问题;②掌握STM32MP1/MP2系列芯片的ROM trace抓取与分析流程;③提升对启动流程和底层调试机制的理解与实战能力; 阅读建议:建议结合实际硬件环境操作,提前准备好ST-LINK调试器、OpenOCD工具链及对应配置文件,在调试过程中注意权限设置与路径配置,避免连接或访问错误。同时应对照官方文档验证操作步骤,确保分析结果准确性。

2025-11-05

LAT1525-STM32H7-SPI通信的Underrun特性介绍- v1.0

内容概要:本文详细介绍了STM32H7系列微控制器在SPI通信中从机模式下的Underrun(下溢)特性,重点阐述了通过SPI_CFG1寄存器中的UDRDET字段配置下溢检测时机的三种模式(UDRDET=0、1、2)。文章解释了在不同配置下,当下溢发生时系统的行为,包括何时触发下溢事件、TxFIFO为空时的数据发送机制(如dummy数据和underrun pattern)、以及硬件延迟对事件检测的影响,并辅以时序图说明各种场景。此外,还强调了正确配置下溢检测对于提升通信可靠性的意义。; 适合人群:嵌入式系统工程师、STM32开发者、具有一定SPI通信基础的软硬件研发人员(工作1-3年以上);; 使用场景及目标:①深入理解STM32H7的SPI从机下溢机制及其对通信稳定性的影响;②合理配置UDRDET参数以应对实际项目中因数据准备不及时导致的通信异常;③调试和优化SPI从机数据发送流程,避免数据丢失或错误传输;; 阅读建议:学习时应结合STM32H7参考手册(RM0468)和实际硬件平台进行验证,重点关注UDRDET不同设置下的行为差异,并在代码中实现相应的中断处理与状态清除机制,确保系统鲁棒性。

2025-11-05

LAT1543 安全存储之SAES+HUK使用技巧和常见问题-v1.0

内容概要:本文详细介绍了STM32系列微控制器中安全AES模块(SAES)与硬件唯一密钥(HUK)的核心特性和应用场景,重点阐述了SAES相较于普通AES在抗侧信道攻击方面的优势,以及HUK、BHK、AHK等硬件密钥的生成机制与使用方式。文章通过数据安全存储、AES密钥安全存储、非对称密钥安全存储三个典型用例,展示了如何利用SAES+HUK实现一机一密、防克隆、密钥不暴露等安全目标,并深入分析了在实际开发中常见的初始化失败、低功耗唤醒异常、多次解密结果错误、跨芯片加密结果相同等问题的根本原因及解决方案。; 适合人群:具备嵌入式系统开发经验,熟悉STM32平台的安全机制,从事物联网、工业控制等领域安全功能开发的工程师;工作年限1-5年,有一定密码学基础的研发人员;; 使用场景及目标:① 在STM32U5/H5/WBA/H7S/N6等支持SAES和HUK的芯片上实现敏感数据的安全存储;② 设计密钥管理系统,确保密钥在存储和使用过程中始终以密文形式存在且不被软件获取;③ 解决SAES在低功耗模式下时钟丢失导致的加解密异常问题;④ 验证HUK唯一性并正确配置芯片生命周期状态以启用真实HUK; 阅读建议:此文档技术深度较高,建议结合STM32各系列参考手册(RM文档)和实际硬件平台进行验证,重点关注SAES初始化流程、时钟配置、TrustZone安全隔离机制以及HAL库API的正确调用顺序,尤其在使用ECB/CBC模式连续解密时需注意密钥寄存器状态管理。

2025-11-05

LAT1567-使用STM32N6测试Helium指令-v1.0

内容概要:本文介绍了如何使用STM32N6微控制器测试Arm Helium(MVE)指令集在数字信号处理中的性能表现,重点对比了在不同内存区域(SRAM2、DTCM/ITCM)运行及启用Helium指令前后执行2048点FIR滤波器的效率差异。文章详细说明了测试环境搭建、主频验证、编译器配置(如IAR和ARM编译器)、关键函数实现,并展示了测试结果:启用Helium后FIR运算速度提升约3倍,在TCM中运行比SRAM2快6~7倍。此外,还介绍了Helium作为Armv8-M架构下的SIMD技术,可显著增强Cortex-M55的并行计算能力,适用于DSP和神经网络等应用场景。; 适合人群:具备嵌入式系统开发经验,熟悉C语言和汇编基础,从事MCU性能优化、数字信号处理或边缘AI开发的工程师;工作年限1-5年的研发人员;关注高性能MCU应用的技术开发者。; 使用场景及目标:①评估Helium指令在FIR滤波等DSP任务中的加速效果;②掌握在STM32N6上启用MVE指令的方法与编译配置;③优化实时信号处理算法性能,提升MCU并行运算效率;④为边缘计算和低功耗AI应用提供硬件加速参考。; 阅读建议:建议结合STM32N6开发板(如NUCLEO-N657Z0-Q)实际操作,重点关注编译器设置、内存布局优化与官方CMSIS-DSP库的集成使用,同时参考ARM官方文档深入理解MVE指令机制。

2025-11-05

【嵌入式安全】基于OP-TEE的M核固件认证技术:STM32MP15x平台可信执行环境下的固件签名与加载方案设计 LAT6028 使用OP-TEE进行M核固件认证-v1.0

内容概要:本文详细介绍了如何使用OP-TEE对STM32MP1系列芯片中的M核固件进行认证和保护,重点阐述了固件签名与加载执行的安全机制。文档说明了将OP-TEE部署在SYSRAM中以启用安全服务的必要性,并提供了基于Developer Package和Distribution Package两种开发环境下的具体操作流程,包括OP-TEE可信应用(TA)的配置与编译、固件签名工具sign_rproc_fw.py的使用方法以及密钥管理等关键技术环节。通过RemoteProc框架实现签名固件的认证与加载,确保M核固件在受信任环境中运行。; 适合人群:具备嵌入式系统开发经验,熟悉Linux构建系统(如Yocto)、TrustZone技术及安全启动流程的1-3年工作经验的工程师;适用于从事STM32MP1平台安全开发的技术人员; 使用场景及目标:①实现M核固件的安全加载与防篡改保护;②在生产环境中部署可信执行环境(TEE)下的协处理器固件认证机制;③满足客户对协处理器代码保密性和完整性的安全需求; 阅读建议:此资源以实际操作为导向,建议读者结合ST官方Wiki和开发板环境同步实践,注意保持密钥一致性、TA名称匹配及配置项正确性,调试过程中可通过/sys/bus/tee/devices/路径验证TA是否成功注册。

2025-11-05

LAT1540 通过GFXMMU实现TouchGFX画面垂直镜像-v1.0

内容概要:本文介绍了如何利用STM32L4R9微控制器的GFXMMU外设实现TouchGFX显示界面的垂直镜像功能。通过反序配置GFXMMU的LUT(查找表),将帧缓冲区的每一行映射到物理内存的相反顺序位置,从而在硬件层面实现图像垂直翻转。该方法无需额外UI资源或软件处理,避免了双套代码带来的资源开销,同时保持显示效果正确。文中以STM32L4R9-Discovery开发板为例,详细说明了LUT配置和LTDC帧缓冲地址偏移的关键步骤,并提供了运行效果图对比正常显示与垂直镜像效果。; 适合人群:嵌入式系统开发者、STM32系列MCU使用者、从事GUI开发特别是使用TouchGFX的工程师;具备一定硬件外设和图形显示基础知识的研发人员; 使用场景及目标:①在需要屏幕垂直镜像的应用场景(如特定安装方向的显示设备)中实现硬件级翻转;②优化资源使用,避免为镜像显示维护两套UI资源;③深入理解GFXMMU的工作机制及其在图形处理中的灵活应用; 阅读建议:建议结合提供的演示工程代码进行实践操作,重点掌握LUT配置逻辑与地址映射关系,调试时注意LTDC与GFXMMU协同工作的时序与地址对齐问题。

2025-11-05

LAT1510-STM32H7xx运行LWIP时的MPU配置介绍-V1.0

内容概要:本文介绍了在STM32H7xx系列微控制器上运行LWIP协议栈时MPU(内存保护单元)的正确配置方法。文章指出,虽然STM32CubeMX在创建工程时会提供默认的MPU配置,但在复杂应用场景(如以太网通信)下,若未对MPU进行合理设置,可能导致系统死机或运行异常。重点分析了LWIP运行失败的原因,包括DMA缓冲区位置不当、存储器属性未设为Device类型以及ETH_MAC只能访问D2域SRAM等问题,并给出了具体的解决方案:通过STM32CubeMX配置MPU,将ETH收发缓冲区设置为Device memory属性(TEX=0, C=0, B=1),LWIP堆栈区设为Normal memory属性(TEX=1, C=0, B=0),并指定了各缓存变量的起始地址与大小。; 适合人群:具备嵌入式开发基础,熟悉STM32H7系列和LWIP协议栈的应用工程师或中级研发人员;正在开发网络功能产品的技术人员。; 使用场景及目标:①解决STM32H7运行LWIP时因MPU配置不当引起的系统死机问题;②掌握如何在STM32CubeMX中正确配置MPU以支持以太网DMA传输;③理解不同存储区域的Cache、Buffer和Shareability属性设置原则; 阅读建议:建议结合STM32H7硬件手册、AN4838应用笔记及ST官方LWIP例程进行实践,重点关注内存区域划分与属性设置,并通过实际调试验证配置效果。

2025-11-05

LAT1524 I2C bootloader的GetCheckSum命令的使用介绍- v1.0

内容概要:本文介绍了STM32 I2C bootloader中“GetCheckSum”命令的使用方法及其CRC校验计算原理。重点说明了该命令基于CRC外设默认配置(32位宽度、多项式0x04C11DB7、初始值0xFFFFFFFF、无输入/输出反射、异或输出为0)对指定Flash地址范围进行校验和计算,并强调地址需4字节对齐、大小为4的倍数且非零。文中还指出,因小端模式存储,手动计算时需按32位字重组数据以避免结果偏差,并通过STM32L452实例验证了使用HAL库调用CRC外设计算的结果与“GetCheckSum”命令一致。; 适合人群:嵌入式软件工程师、STM32开发人员、固件开发者,具备基本MCU和通信协议知识的技术人员; 使用场景及目标:①在Bootloader调试过程中正确理解和使用GetCheckSum命令;②确保自定义CRC计算与I2C Bootloader结果一致,避免因配置差异导致校验错误;③用于固件完整性校验、程序烧录验证等场景; 阅读建议:阅读时应结合AN4221文档和STM32参考手册,重点关注CRC配置参数和数据组织方式,在实际项目中对比测试命令行为与自行实现的CRC算法一致性。

2025-11-05

LAT1474 三个 ADC同步模式配置以及CubeMx错误配置解决方法-v1.0

内容概要:本文详细介绍了STM32中三个ADC同步模式的配置方法,重点说明了在使用CubeMx工具进行三ADC(ADC1、ADC2、ADC3)同步采样配置时,如何设置规则组与注入组的工作模式、触发源(如TIM1和TIM2)、DMA数据传输及通道分配。文章指出,在CubeMx V6.12之前版本中存在配置缺陷,即将ADC2和ADC3的注入模式错误地设为自动注入模式(JAUTO位被置位),导致规则组采样出现0x000和0xFFF等异常数据。解决方案是在生成代码后手动添加指令强制清除JAUTO位,以确保同步采样的稳定性与准确性。; 适合人群:嵌入式系统工程师、STM32开发者、具有一定MCU开发经验的电子工程师(工作1-3年以上);熟悉ADC、DMA、定时器应用的技术人员;使用CubeMx进行项目开发并遇到多ADC同步问题的用户; 使用场景及目标:①实现三路ADC同时采样,支持规则组与注入组协同工作;②解决CubeMx旧版本在Triple ADC模式下的配置错误问题;③确保DMA正确搬运多通道同步采样数据,避免数据混乱或异常;④应用于需要高精度同步采集多路模拟信号的工业控制、电机驱动、电源管理等领域; 阅读建议:此资源结合实际配置截图与代码示例,具有较强实践指导意义。建议读者在开发过程中对照CubeMx界面设置,重点关注ADC公共寄存器配置,并在发现规则组采样异常时检查JAUTO位状态,及时通过软件清零修复问题。同时建议升级至新版CubeMx或关注ST官方更新动态。

2025-11-05

【嵌入式安全启动】基于STiROT的TrustZone应用配置:STM32H5平台安全固件部署指南

内容概要:本文详细介绍了如何在STM32H573I-DK开发板上通过STiROT启动STiROT_Appli_TrustZone应用。由于STiROT_Appli(全安全应用)与STiROT_Appli_TrustZone(包含安全与非安全区域)的Flash布局不同,直接运行后者会导致失败。文章指出需修改env.bat中的应用路径,调整STiROT_Config.xml中“full secure”配置为非全安全模式,并重新生成OBK(Option Bytes Key),才能成功部署和运行TrustZone应用。整个流程依托STM32CubeH5、STM32CubeProgrammer等工具完成,强调了环境配置的关键性。; 适合人群:具备嵌入式开发基础,熟悉STM32平台及安全机制(如TrustZone)的工程师,尤其是从事安全启动与固件更新开发的技术人员;; 使用场景及目标:①帮助开发者在STM32H5系列芯片上正确部署基于TrustZone的安全应用;②解决从标准安全应用迁移到混合安全架构时遇到的配置问题;③实现安全启动流程中OBK的正确生成与烧录; 阅读建议:在操作前应仔细对照文档修改环境变量和XML配置文件,严格按照步骤重新生成密钥并执行烧录脚本,建议结合实际调试过程验证每一步结果,确保配置一致性。

2025-11-05

LAT1560-MC-SDK-V6.x软件HSO功能ADC采样设计说明-V1.0

内容概要:本文详细介绍了ST公司MC SDK V6.x软件中新增的高灵敏度无传感观测器算法HSO(High Sensitivity Observer)的ADC采样硬件设计要求。HSO算法依赖精确的电流和端电压采样,因此对硬件设计提出较高要求。文档阐述了电流采样需采用开尔文连接方式,并推荐滤波参数;端电压采样则需合理分压与滤波,推荐截止频率为500Hz左右。同时明确了MCU的ADC模块分配原则,建议使用至少两个独立ADC模块,在一个PWM周期内进行四次采样,根据不同数量的ADC模块(两个或三个)提供具体的信号分配方案。; 适合人群:从事电机控制硬件设计、嵌入式系统开发及相关应用工程师,具备一定模拟电路与MCU外设基础知识的研发人员; 使用场景及目标:①指导开发者正确设计支持HSO算法的电流与电压采样电路;②合理配置STM32G4系列MCU的ADC资源以满足HSO对实时性和精度的需求;③确保马达控制系统在高低速运行下均能实现精准的角度与速度观测; 阅读建议:结合STEVAL-LVLP01和B-G473E-ZEST1S等参考板电路进行对比分析,重点关注ADC触发机制、滤波参数选取及PCB布局布线,建议在实际平台上验证采样精度与系统稳定性。

2025-11-05

LAT1563-STM32N6-XSPI1时钟配置问题与建议-v1.0

内容概要:本文针对STM32N6微控制器在使用XSPI1接口时因时钟配置不当导致应用复位后程序卡死的问题进行了详细分析。问题出现在将XSPI1时钟源设置为PLL(如PLL2→IC3)时,系统复位后BootROM无法正常加载外部Flash中的FSBL程序,原因是复位过程中PLL时钟尚未稳定,导致XSPI1时钟切换失败,从而引发通信异常。文章通过实验验证了问题根源,并指出只要FSBL或应用程序中XSPI1的时钟源与BootROM使用的per_ck保持一致,即可避免该问题。此外,还提出了在复位前手动切换回兼容时钟源的备用解决方案。; 适合人群:从事STM32系列MCU开发的嵌入式软硬件工程师,特别是使用STM32N6芯片并涉及外部Flash启动和XSPI配置的开发人员;具备一定时钟树和启动流程基础知识的中级开发者。; 使用场景及目标:①指导开发者正确配置XSPI1时钟源以确保系统复位后正常启动;②帮助理解STM32N6的RCC时钟切换机制及BootROM对外设时钟的依赖;③避免因时钟配置不当导致的应用卡死问题,提升系统可靠性; 阅读建议:建议结合STM32N6参考手册RM0486和UM3234文档一起阅读,重点关注RCC外设时钟分配机制和BootROM行为,在实际项目中优先采用与BootROM一致的时钟源配置策略,并在调试时注意区分上电复位与系统复位的行为差异。

2025-11-05

电力电子基于GaN的高密度直流电力传输:面向800V数据中心AI机架的高效功率转换系统设计

内容概要:本文介绍了面向下一代人工智能数据中心的高密度电力传输解决方案,重点阐述了从传统54V直流配电系统向800V高压直流架构的转型。该方案通过在数据中心外围集中完成交流到800V直流的转换,并将高压直流直接输送至机架,显著降低了电流和铜材消耗,提升了端到端能效达5%。文章详细描述了一款为NVIDIA 800VDC架构设计的12kW、1MHz氮化镓(GaN)LLC谐振转换器,集成平面矩阵变压器与ST先进半导体技术,实现800V至50V高效、高密度DC-DC转换,峰值效率高达98.5%,功率密度达2600W/in³。该设计采用堆叠式拓扑、磁通抵消、对称绕组与交叉连接等创新技术,优化热管理并支持液体冷却,解决了高频下的EMI、损耗与均流难题。; 适合人群:从事电力电子、数据中心基础设施研发的工程师,以及关注AI数据中心电源架构升级的技术决策者;具备电力系统、高频变换器设计背景的专业技术人员。; 使用场景及目标:①应用于兆瓦级AI服务器机架的高密度供电系统设计;②解决传统54V系统在空间占用、铜耗过大、效率低下等方面的瓶颈;③推动数据中心向更高电压等级、更高功率密度和更优热管理方向演进;④为未来低输出电压、高集成度电源模块提供技术参考。; 阅读建议:此资源聚焦于系统级创新与核心器件协同设计,建议结合电路拓扑、材料选型与热仿真等内容深入研读,并关注GaN器件、平面变压器与数字控制策略的实际集成方法,以便在实际项目中进行技术迁移与优化验证。

2026-04-15

AI玩具多模态智能体技术演进与产业化路径:基于端侧算力、混合通信及情感计算的儿童陪伴型智能硬件系统设计

内容概要:本文系统梳理了AI玩具从技术演进、产业现状到未来趋势的完整发展路径,揭示其正从“语音盒子+玩偶”的物理拼接迈向具备感知、认知与行动能力的多模态智能体。文章指出,随着大语言模型、实时语音通信(RTC)、端侧AI芯片、混合通信(Wi-Fi+蜂窝)及高精度传感器等技术的融合突破,AI玩具已进入“情感陪伴”新阶段,逐步实现连续对话、主动交互、多模态响应和云端一体协同。典型案例汤姆猫展示了如何通过IP赋能、个性化互动与“一个灵魂、两个实体”的架构设计,打造具身化、有温度的AI玩伴。同时,硬件、通信、安全与内容生态的协同创新正成为产业升级的关键驱动力。; 适合人群:从事智能硬件开发、儿童科技产品设计、AI应用研发及相关产业链(芯片、模组、内容生态)的技术人员与管理者;关注AI+教育、AI+陪伴场景的产品经理与创业者;研究人机交互、儿童心理学与智能伦理的相关学者。; 使用场景及目标:①理解AI玩具的技术拐点与落地挑战,指导产品定义与技术选型;②掌握云端协同、端侧推理、多模态交互与混合通信的工程实现路径;③探索AI玩具在教育、陪伴、特殊人群关怀等场景的应用潜力与商业模式创新;④构建兼顾安全性、适龄性与情感价值的内容生成与伦理治理框架。; 阅读建议:此资源融合产业洞察、技术解析与真实案例,建议结合自身研发或业务场景,重点研读对应章节,尤其关注端侧AI部署策略、通信架构设计与儿童数据安全实践,以推动技术与体验的双重突破。

2026-04-15

【无人机系统】基于STM32的飞行控制与电机驱动一体化解决方案:面向高性能无人机的全栈硬件设计与开发工具

内容概要:本文介绍了意法半导体为无人机(UAV)提供的全面产品与解决方案,涵盖飞行控制器单元(FCU)、电子调速器(ESC)、任务配置单元、云台控制系统、摄像头模块、无线连接及电源管理等核心子系统。通过集成高性能STM32微控制器、MEMS传感器、GNSS接收器、电机驱动器和电源管理IC,实现无人机的稳定飞行、精准控制、自主导航与智能任务执行。文档详细列出各子系统的硬件参考设计、关键芯片选型、固件支持及开发工具,并强调在尺寸、功耗与性能之间优化平衡,助力开发者快速构建高效、安全的无人机系统。; 适合人群:从事无人机研发的电子工程师、嵌入式系统开发者、硬件设计师以及工业级无人机产品开发团队;具备一定嵌入式基础的技术人员和对STM32生态系统熟悉的研发人员。; 使用场景及目标:①构建高性能无人机飞行控制系统,实现姿态稳定、GPS导航与自动返航等功能;②开发高效电机控制方案,提升续航与响应精度;③实现智能任务管理、视觉感知与安全通信的集成设计;④利用参考设计和开发套件加速原型验证与产品落地。; 阅读建议:此资源以实际硬件方案为导向,建议结合STEVAL系列开发板与ST官方提供的固件库(如X-CUBE-MCSDK)进行实践学习,重点关注各子系统间的协同设计与系统级优化,同时参考ST官网获取最新资料与3D打印文件以完成整机搭建。

2026-04-15

LAT1618-STM32H573使能HSLV引起I2C4失效的案例分析-V1.0

内容概要:本文分析了某客户在使用STM32H573芯片开发PLC产品时遇到的I2C4通信失效问题。故障表现为当I2C4使用PG6和PG7引脚且GPIO速率配置为VERY HIGH时,SCL和SDA无法输出高电平(仅20mV),导致通信失败;而使用PB6和PB7引脚时则正常。经排查发现,PG6和PG7支持HSLV(高速低电压)模式,而客户系统VDD供电为3.3V,高于HSLV允许的2.7V上限,此时启用HSLV会导致IO异常。根本原因在于错误启用了HSLV功能,解决方案是在选项字中关闭HSLV即可恢复正常通信。此外,低速模式下出现的SDA毛刺属于正常现象,可通过启用I2C模拟滤波器消除。; 适合人群:嵌入式软硬件工程师、STM32系列微控制器开发者、从事工业控制类产品研发的技术人员; 使用场景及目标:①帮助开发者识别和解决因误配HSLV导致的I/O通信异常问题;②指导正确理解和使用STM32H5系列的电压域与GPIO特性,避免硬件损坏或功能异常;③提升对I2C总线信号完整性的分析能力; 阅读建议:本文基于真实应用案例,结合数据手册和参考手册进行深入分析,建议读者结合STM32H5的DS14121和RM0481文档对照学习,并在实际项目中注意电源配置与GPIO模式匹配性验证。

2026-02-06

【嵌入式图形界面】基于TouchGFX的滚轮式菜单选择容器应用:STM32开发板动态界面快速构建方案

内容概要:本文介绍了在TouchGFX中使用滚轮式菜单选择界面容器(MenuContainer)的方法,通过导入提供的MenuContainer.tpkg容器文件及相关资源(字体、动画图片),开发者可快速构建一个流畅炫酷的菜单选择界面。文档详细说明了容器的导入步骤、缺失资源的补充方法、字体与动画图片的手动配置流程,以及如何通过添加交互动作(如goToScreen2)实现界面切换功能。最终可在STM32N6570-DK等平台上实现类似开机视频中的动态菜单效果,提升用户体验。; 适合人群:熟悉TouchGFX开发环境,具备嵌入式图形界面开发经验的1-3年研发人员;适用于使用STM32系列MCU进行GUI开发的工程师。; 使用场景及目标:①快速实现具有视觉吸引力的滚轮式菜单界面;②通过自定义图片和文字替换,适配不同项目需求;③掌握TouchGFX中容器的复用机制与页面导航逻辑设计;④实现基于事件驱动的屏幕切换交互。; 阅读建议:在实践过程中需严格按照文档步骤操作,注意字体重新配置和动画序列完整性;建议结合附件工程示例进行调试与验证,确保交互逻辑正确无误。

2026-02-06

LAT1621-STM32N6在PSRAM上运行代码的调试-v1.0

内容概要:本文介绍了在STM32N6微控制器上将用户代码部署于PSRAM中运行并进行调试的技术方案。由于部分应用代码体积较大,无法仅依靠内部SRAM运行,因此需利用外部PSRAM。文章重点阐述了如何通过STM32CubeIDE实现对运行在PSRAM上的代码进行高效调试,提出采用“Attach”方式连接已运行的程序,避免复杂的GDB命令操作。具体步骤包括:对FSBL和应用代码签名烧录至外部Flash,在DEV模式下启动系统使代码自动加载至PSRAM,再通过配置调试环境实现无复位、无下载的附加调试。文中详细说明了工程配置中的Debugger与Startup参数设置,确保调试器能正确定位到PSRAM中的代码段与向量表地址(0x90100400),最终成功进入main函数进行调试。; 适合人群:熟悉STM32开发流程,具备嵌入式系统调试经验的中高级嵌入式软件工程师或硬件开发者;尤其适用于需要在资源受限环境下优化代码存储与执行的应用场景。; 使用场景及目标:①解决大容量应用程序无法完全放入片内存储器的问题,利用PSRAM扩展运行空间;②实现在外部存储器上运行代码时的高效调试,提升开发效率;③适用于基于STM32N6系列芯片的产品开发与问题定位。; 阅读建议:建议读者结合STM32CubeIDE和STM32CubeProgrammer工具实际操作,参考文中的命令行工具使用、烧录地址及调试配置截图,逐步验证每一步骤。注意BOOT模式切换时机与电源管理,确保调试接口可用。同时可参考ST社区相关文章补充背景知识。

2026-02-06

LAT1574-如何在STM32Cube-CMake工程中添加源文件-v1.0

内容概要:本文介绍了如何在STM32CubeMX生成的CMake工程中添加用户自定义源文件。由于此类工程缺乏图形化界面的文件管理功能,文档提供了三种有效方法:直接列出源文件路径、使用通配符配合file命令批量收集源文件、以及利用aux_source_directory命令自动扫描目录下的所有源代码文件并加入构建目标。文章强调STM32CubeMX对根目录CMakeLists.txt仅生成一次,后续手动修改不会被覆盖,确保了用户配置的持久性。通过实例演示每种方法的操作步骤和有效性,最终实现与图形界面相当的便捷性。; 适合人群:使用STM32CubeMX与CMake进行嵌入式开发,具备基本CMake语法知识的1-3年经验嵌入式软件工程师或开发者;尤其适用于采用STM32Cube for Visual Studio Code环境的用户。; 使用场景及目标:①在无图形界面的CMake项目中集成自定义源码文件夹(如custom目录);②提高多文件项目的维护效率,避免逐一手动添加;③掌握CMake中target_sources、file()和aux_source_directory等关键指令的实际应用; 阅读建议:建议结合实际工程操作,逐一尝试文档中提到的三种添加方式,并理解其适用情境;注意备份原始文件以防配置错误,同时以官方最新文档和实际编译结果为准验证本文内容的有效性。

2026-02-06

LAT1594-基于事件唤醒低功耗之介绍-v1.0

内容概要:本文介绍了基于STM32U575微控制器使用WFE(Wait for Event)指令进入低功耗模式并通过事件唤醒CPU的实现方法。重点讲解了两种事件唤醒机制:一是通过EXTI模块将GPIO配置为事件模式,利用外部按键触发事件唤醒;二是通过中断Pending状态产生事件唤醒,需使能SEVONPEND位,即使中断未启用也能因Pending状态触发唤醒。文章结合Nucleo开发板实例,提供了具体的代码配置流程和测试验证方法,并指出某些外设(如LPTIM1)仅支持通过中断Pending方式唤醒。实验验证了两种方式均能有效唤醒CPU,帮助开发者深入理解WFE与WFI低功耗机制差异。; 适合人群:具备嵌入式系统基础知识,熟悉STM32系列MCU开发,有一定低功耗设计经验的工程师或研发人员;适用于从事物联网、电池供电设备等对功耗敏感领域的产品开发人员。; 使用场景及目标:①掌握WFE指令在Sleep模式下的应用,优化系统功耗;②理解EXTI事件与中断Pending事件的区别及配置方法;③解决实际项目中因配置不当导致的唤醒失败问题,提升系统可靠性;④为低功耗设计提供除WFI外的另一种高效唤醒方案。; 阅读建议:建议结合STM32U5系列参考手册(RM0456)、PM0264电源管理文档以及提供的测试工程(PWR_SLEEP_WFE_lptim.7z)进行实践操作,重点关注寄存器配置顺序与标志位清除步骤,确保事件或Pending状态正确触发。同时注意本文档为本地技术分享,最终设计应以ST官网最新资料为准。

2026-02-06

LAT1602-STM32H7的3个ADC时钟同步方法-v1.0

内容概要:本文介绍了在STM32H7系列微控制器中同时使用三个ADC(ADC1、ADC2和ADC3)时可能遇到的ADC时钟不同步问题,以及由此引发的模块间转换干扰风险。重点提出了一套经设计团队验证的初始化流程,通过控制ADC时钟源(adc_ker_ck)的启停顺序,在启用ADC校准和转换前确保三个ADC模块的时钟同步,从而避免相互干扰。具体步骤包括分步开启ADC时钟、延迟使能时钟源以同步校准启动、等待校准完成后再统一激活ADC并开始转换。; 适合人群:从事嵌入式系统开发、熟悉STM32H7系列MCU硬件架构及ADC模块的应用工程师或技术研发人员;具备一定时钟树和外设初始化经验的中级以上开发者。; 使用场景及目标:①在多通道高精度数据采集系统中实现三个ADC协同工作;②解决因时钟异步导致的采样误差与信号干扰问题;③优化ADC初始化流程以提升系统稳定性和测量可靠性; 阅读建议:在实际项目中应用该方案时,需结合STM32H7的参考手册(如RM0399)进行寄存器配置核对,并通过调试工具验证各步骤执行时序,确保代码实现与文档推荐流程一致。

2026-02-06

LAT1596一文说明白STM32G4双Bank启动与升级-v1.0

内容概要:本文详细介绍了STM32G4系列MCU的双Bank(Dual Bank)特性及其在固件升级中的应用。重点讲解了双Bank模式下Flash存储结构、启动机制、地址映射交换(通过BFB2选项位和FB_MODE寄存器),并对比了单Bank与双Bank在读取位宽、扇区大小和RWW(读写同时)能力等方面的差异。文章进一步阐述了基于双Bank的三种固件升级方案,尤其强调可在不影响当前程序运行的情况下完成后台静默升级,显著提升系统可用性。; 适合人群:嵌入式软件工程师、固件开发人员,特别是从事STM32G4系列开发且具备1年以上经验的研发人员;适用于关注高可靠性、不间断服务升级的工业控制、数字电源等领域开发者; 使用场景及目标:① 实现STM32G4在运行时无缝固件升级;② 设计支持热备份切换的双Bank引导系统;③ 解决传统单Bank升级中必须中断业务的问题; 阅读建议:阅读时应结合RM0440和AN4767等官方参考手册,重点关注BFB2与FB_MODE的作用机制,建议使用NUCLEO-G474RE开发板配合STM32CubeProgrammer进行实操验证,注意不同连接方式(hot plug/under reset)对Bank识别的影响。

2026-02-06

LAT1599-STM32G0系列CSS功能及应用问题-v1.0

内容概要:本文介绍了STM32G0系列MCU中的时钟丢失检测功能(CSS),重点讲解HSECSS和LSECSS的工作机制,包括对HSE和LSE时钟丢失的自动检测、NMI中断触发、系统时钟自动切换以及RTC时钟源的手动切换策略。同时,文章针对客户在实际应用LSECSS功能过程中遇到的典型问题进行了深入分析,并提供了具体的解决方案,如LSE故障后如何正确清除LSECSSD标志位以恢复LSE工作,以及LSERDY标志位未及时清零的原因与应对措施。; 适合人群:从事嵌入式开发、熟悉STM32系列MCU应用的软硬件工程师,特别是涉及低功耗和实时时钟设计的技术人员。; 使用场景及目标:①掌握STM32G0系列中CSS功能的配置与应用;②解决LSE时钟丢失检测后的系统恢复问题;③正确理解和处理LSERDY状态标志的行为特性;④适用于需要高可靠性时钟监控的工业控制、物联网终端等应用场景。; 阅读建议:此文档为应用笔记性质,建议结合STM32G0参考手册和HAL库代码进行实践验证,在调试过程中重点关注RTC域寄存器的操作顺序及复位流程,确保符合硬件行为规范。

2026-02-06

LAT1627-基于X-Cube-FreeRTOS-Heap4和CubeMX生成UCPD项目介绍-v1.0

内容概要:本文介绍了如何基于X-Cube-FreeRTOS_Heap4和STM32CubeMX生成适用于STM32H563ZIT6的UCPD(USB Type-C Power Delivery)项目,重点解决了客户在使用新版CMSIS_V2环境下配置FreeRTOS与UCPD外设时遇到的问题。文档详细说明了开发环境搭建、CubeMX工程配置(包括UCPD外设、FreeRTOS内存管理、ADC采样VBUS电压)、中断优先级设置、中间件配置及代码生成流程,并提供了调试过程中常见问题的解决方案,如中断优先级冲突修复和DPM定时器使能等。最终通过STM32CubeMonitor工具验证UCPD通信功能正常。; 适合人群:具备嵌入式开发基础,熟悉STM32CubeMX、FreeRTOS及USB-PD协议的1-3年工作经验的嵌入式软件工程师或系统设计师;适用于正在开发STM32H5系列USB-PD应用的技术人员。; 使用场景及目标:①指导开发者在STM32H5平台上使用最新版CubeMX和X-Cube-FreeRTOS配置UCPD Sink应用;②解决从旧版CMSIS_V1迁移到CMSIS_V2过程中的兼容性问题;③提供完整的工程配置流程与调试方法,确保UCPD功能正确实现。; 阅读建议:此文档结合实际案例讲解,建议读者在Nucleo-H563ZI开发板上同步操作,重点关注UCPD与FreeRTOS的协同配置、中断优先级与DMA设置,并对比AN5418等官方文档进行验证,注意移植时修改usbpd_devices_conf.h中的中断优先级参数以避免运行异常。

2025-12-30

LAT1595-Ethernet接口MII模式下CRS等信号的处理-v1.0

内容概要:本文主要针对STM32H725IGK3微控制器在使用Ethernet接口MII模式时,面对交换芯片RTL8367RB-VB缺少TXER、RXER、CRS和COL信号的情况,探讨了这些信号的处理方式。通过查阅参考手册、IEEE 802.3规范、使用STM32CubeMX工具配置以及与技术部门确认,得出在全双工模式下,由于不存在冲突域,CRS和COL信号不再需要,而TXER和RXER为可选信号,主要用于错误诊断,不影响基本通信功能。最终确认在MII全双工模式下可安全省略这些信号。; 适合人群:从事嵌入式开发、熟悉STM32系列MCU及以太网接口应用的硬件/软件工程师,特别是涉及PHY或交换芯片接口设计的研发人员;具备一定网络通信基础知识,工作1-3年的技术人员。; 使用场景及目标:①解决MII接口设计中缺失CRS、COL、TXER、RXER等信号的疑难问题;②明确全双工模式下CSMA/CD相关信号的必要性判断;③指导实际项目中与非标准PHY或交换芯片的接口兼容性设计; 阅读建议:本文结合工具配置、标准规范与厂商技术支持进行综合分析,建议读者在类似应用场景中优先确认工作模式(半双工/全双工),并依据协议规范理解信号作用,避免过度设计或误接信号。

2025-12-30

LAT1617-FDCAN数据发送失败问题-V1.0

内容概要:本文分析了在使用FDCAN协议时,当数据段波特率设置为5Mbit/s、仲裁段波特率为1Mbit/s时出现的数据发送失败问题。通过回环测试排除软件问题后,借助示波器对总线波形进行分析,定位问题发生在BRS(Bit Rate Switch)位。BRS位用于切换仲裁段与数据段的波特率,在高速切换过程中因PCB layout设计不佳导致波形失真,从而引发通信异常。实验表明降低数据段波特率可恢复正常通信,最终得出结论:提高FDCAN数据段波特率时,需优化PCB布局以保障信号完整性。; 适合人群:从事汽车电子、嵌入式系统开发或CAN总线应用的硬件工程师、软件工程师及技术支持人员,具备一定的CAN/FDCAN协议和硬件设计基础; 使用场景及目标:①排查FDCAN高速数据段通信异常问题;②理解BRS位的作用及其在波特率切换中的实现机制;③指导高波特率下的PCB layout设计优化; 阅读建议:本文结合实测波形深入分析问题成因,建议读者结合FDCAN协议规范,对照实际硬件设计与信号质量进行比对验证,并关注物理层设计对通信可靠性的影响。

2025-12-30

LAT1555基于STM32G474的三相LLC和SR-PWM产出方案v1.0

内容概要:本文介绍了基于STM32G474微控制器实现三相LLC+同步整流(SR)拓扑结构下的PWM控制方案,重点解决高功率服务器电源(如5.5KW及以上)中所需的18路PWM信号生成问题。通过联合使用HRTIMER、高级控制定时器(ADTIMER)和通用定时器(GPTIMER),实现多定时器同步与120°错相控制,确保原边三相全桥与副边同步整流的精确驱动。方案详细说明了TIM1、TIM8、TIM20与HRTIMER各子模块的配置方式,支持每路PWM的上升沿和下降沿独立调节,并利用CubeMX工具进行配置。文中还展示了多种实测波形,验证了调频过程中原边与副边PWM的稳定性。; 适合人群:从事电源系统设计、嵌入式开发,尤其是大功率数字电源开发的硬件工程师和固件开发者,具备一定STM32定时器和电力电子基础的技术人员; 使用场景及目标:①应用于5.5KW及以上服务器电源的三相LLC+SR拓扑控制;②实现高精度、多通道、可独立调控的PWM信号生成;③掌握HRTIMER与ADTIMER协同工作机制及双沿可控PWM实现方法; 阅读建议:本文涉及复杂的定时器配置逻辑与硬件协同机制,建议结合CubeMX配置文件和实测波形对照理解,并注意高级定时器PWM分辨率限制(5.88ns),在高频高精度场景中需评估替代方案。

2025-12-30

LAT6037 如何配置STM32MP257的RMII Switch

内容概要:本文详细介绍了如何在STM32MP257微处理器上配置支持RMII接口的百兆以太网交换机(Switch)。涵盖硬件设计、内核配置、设备树设置、驱动内容编译与加载概、以及初始化脚本的使用,重点说明了在开发者包和基于要:本文Yocto的distribution开发环境中启用RMII Switch的具体步骤,并提供了常见问题解决方案,如带详细宽限制配置和网络接口命名调整。同时还涉及TSN(时间敏感网络)功能的支持与系统集成方法。; 适合人群:嵌入式系统工程师、Linux驱动开发者、具有STM32平台开发经验的中高级技术人员;熟悉设备树、内核模块编译及网络配置的专业人员介绍了如何在STM32;从事工业自动化、实时通信等领域产品研发的工程师。; 使用场景及目标:①实现STM32MP257芯片内置Switch对接RMII百兆PHY的完整配置;②掌握在OpenSTLinux环境下构建支持TSN Switch的系统映像;③解决RMII与RGMII速率MP257处理器不匹配导致的通信问题,优化网络性能;④为工业以太网、实时控制等应用提供可靠的硬件与软件架构支持; 阅读建议:此资源以实际工程配置为导向,建议读者结合STM32MP257-EV评估板和OpenSTLinux V6.0环境进行实践操作,重点关注设备树修改、OP上配置RMII接口的TEE时钟配置及启动脚本适配,同时注意核对PHY地址与接口命名一致性,确保配置正确生效。百兆以太网Switch功能,涵盖硬件设计、内核配置、设备树设置、驱动编译与加载、以及网络初始化脚本的使用。文章重点讲解了Switch功能的软硬件架构,包括DeIP标准模块和ACM控制模块,并提供了开发者和基于Yocto发行版两种方式启用RMII Switch的具体步骤。此外,还包含了时钟配置、PHY连接、接口命名调整及带宽限制等关键细节,并附带常见问题说明和调试建议。; 适合人群:嵌入式系统工程师、Linux驱动开发者、具备一定ARM平台开发经验的技术人员,尤其是从事工业通信、TSN(时间敏感网络)相关产品开发的人员;熟悉STM32系列MPU和Linux内核基本操作的1-3年工作经验者更为合适。; 使用场景及目标:①实现STM32MP257芯片内置Switch对接RMII百兆PHY的完整配置;②掌握TSN交换机功能的使能方法;③解决Switch在实际应用中遇到的时钟、驱动加载、网络命名和带宽匹配等问题;④为构建多网口工业网关或边缘计算设备提供技术参考。; 阅读建议:此文档涉及底层硬件配置与内核驱动联动,建议结合STM32官方参考手册RM0457和硬件开发指南AN5489同步查阅,在实际开发板(如STM32MP257-EV)上逐步验证每一步操作,特别注意PHY地址、设备树节点和脚本中接口名称的一致性。

2025-12-26

高g值加速度计搭配智能IMU: 提升动态环境下的测量精度

内容概要:本文介绍了意法半导体推出的新型高g值加速度计IMU——LSM6DSV80X和LSM6DSV320X,该惯性测量单元创新性地在单一封装内集成低g值加速度计(±16g)、高g值加速度计(最高±320g)和三轴陀螺仪,解决了传统传感器在动态环境中难以兼顾高低加速度精确测量的问题。通过独特的MEMS机械设计、双加速度计架构及先进的信号处理技术,实现了宽范围加速度的高精度检测,尤其适用于高强度冲击、振动和快速运动变化的场景。器件内置有限状态机(FSM)、机器学习内核(MLC)、传感器融合算法和峰值跟踪等功能,支持边缘智能处理,可在不依赖主机处理器的情况下完成复杂运动识别与实时事件检测。配合1.5KB可扩展至4.5KB的FIFO缓冲区,保障了数据完整性与系统高效运行。此外,配套的软件库(如MotionXLF、MotionFX)、开发工具(MEMS Studio、ST AIoT Craft)和硬件平台构成完整开发生态,大幅简化设计流程,加速产品上市。; 适合人群:从事智能可穿戴设备、运动监测、工业资产追踪、汽车安全及物联网终端开发的硬件工程师、嵌入式系统开发者和传感器应用研究人员,具备一定的MEMS传感器基础知识和嵌入式开发经验者更佳; 使用场景及目标:①用于高强度体育运动中的冲击监测(如网球拍振动、滑雪撞击、拳击出拳分析);②实现个人跌倒检测与车祸碰撞识别等安全防护功能;③支持智能手表、AR/VR设备中的高级手势识别与情景感知;④应用于无人机、机器人等需要高动态环境感知的系统中,提升姿态估计精度与响应速度; 阅读建议:建议结合官方提供的应用笔记(AN6119、AN6292等)、软件库文档及开发工具进行实践验证,重点关注双加速度计的数据融合策略、嵌入式AI功能配置与功耗优化设置,以充分发挥该IMU在复杂动态场景下的性能优势。

2025-11-15

LAT1416 通过DMA将内存图像旋转90度-v1.0

内容概要:本文介绍了如何利用DMA技术在STM32微控制器上高效实现内存图像逆时针旋转90度的方法。针对传统软件旋转效率低的问题,提出使用DMA硬件加速方案,分别基于STM32H7系列的MDMA和STM32U5系列的GPDMA实现。其中,MDMA采用LinkedList模式,通过配置多个链表节点逐行传输并转存为列数据,适用于无2D寻址功能的场景;而GPDMA支持2D寻址,可通过重复块传输机制直接实现图像旋转,无需链表结构,更加高效且节省内存。文章还提供了具体的代码示例和地址偏移计算方法,并指出若MCU集成GPU2D模块(如STM32H7R/S、U59/A/F/G等),还可进一步借助硬件图形引擎完成旋转操作。; 适合人群:嵌入式系统开发人员、STM32平台开发者、从事UI图形处理或图像算法优化的工程师,具备一定DMA和C语言编程基础的技术人员; 使用场景及目标:①在资源受限的嵌入式设备中提升图像旋转效率,降低CPU负载;②学习如何利用DMA的高级特性(如LinkedList、2D寻址、重复块传输)优化图形数据搬运;③为横竖屏切换、图像预处理等应用场景提供硬件加速解决方案; 阅读建议:建议结合STM32H7与STM32U5的参考手册和HAL库文档对照阅读,动手实践代码并在实际平台上调试验证,深入理解DMA在复杂数据重排中的应用机制。

2025-11-15

LAT1501 STM32CubeMX生成时钟获取函数分析-V1.0

内容概要:本文分析了在使用STM32CubeMX V6.13.0与STM32Cube_FW_H7 V1.12.0生成代码时,由于D1CorePrescTable数组定义错误导致串口通信乱码的问题。重点解析了该数组在HAL库时钟获取函数中的作用机制,指出错误的数组值{0,0,0,0}替代原本的{1,2,3,4}会导致APB1总线分频计算错误,从而影响串口波特率设置。通过对比寄存器配置与时钟树结构,阐明了查表法在时钟频率计算中的关键作用,并提供了手动修复数组内容的解决方案。; 适合人群:嵌入式系统开发人员、STM32系列MCU使用者,特别是从事STM32H7系列开发并使用STM32CubeMX工具的工程师;具备一定时钟系统和外设驱动调试经验的技术人员。; 使用场景及目标:①解决STM32CubeMX升级后因时钟配置表异常引发的外设通信故障;②深入理解HAL库中时钟频率获取机制及查表法实现原理;③提升对MCU时钟树、寄存器配置与外设性能关联性的分析能力; 阅读建议:此资源以实际问题为导向,建议结合STM32H7参考手册(RM0433)、调试工具和源码进行对照分析,在实践中验证时钟配置对串口等外设的影响,并关注ST官方后续补丁更新。

2025-11-15

【嵌入式系统】基于LL库的STM32H7 ADC驱动开发:16位模数转换采样异常问题分析与修复方案 LAT1504 关于STM32H7使用LL库生成ADC代码工作异常问题说明-v1.0

内容概要:本文针对STM32H7系列芯片在使用LL库生成ADC代码时出现采样异常的问题进行了详细分析与验证。通过CubeMX配置工具对比HAL库与LL库的差异,发现LL库在生成代码时未正确配置ADC的Boost模式和通道预选(PCSEL)寄存器,导致ADC无法正确采集外部信号。文章以Nucleo-H743ZI开发板为测试平台,复现问题并定位根源,最终提出在CubeMX 6.12及之前版本中需手动补充相关寄存器配置的解决方案,确保ADC通道正常工作。; 适合人群:嵌入式系统开发者、STM32系列MCU应用工程师、熟悉ADC外设并使用LL库进行开发的技术人员;具备一定STM32底层开发经验,工作1-3年以上的研发人员。; 使用场景及目标:①解决STM32H7使用LL库时ADC采样数据异常的问题;②理解LL库与HAL库在外设配置上的差异;③掌握ADC Boost模式和通道预选择机制的配置方法,提升对STM32H7 ADC底层寄存器的理解与调试能力。; 阅读建议:此资源以实际问题为导向,结合图形化配置工具与底层寄存器分析,建议读者结合CubeMX工具、参考手册和代码调试同步实践,重点关注ADC_CR和ADC_PCSEL寄存器的手动配置,以彻底解决LL库生成代码的缺陷。

2025-11-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除