STM32相关
文章平均质量分 65
STM32相关教程和问题
海飞的鱼
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
在STM32F407上实现USB MIDI的代码
本文介绍了基于STM32实现USB MIDI设备的方法。首先使用STM32CubeMX生成Custom HID代码模板,然后修改描述符为USBMIDI格式,并通过MIDI-OX软件验证设备识别。接着实现接收和发送接口功能,核心代码包括:1) USB MIDI描述符配置;2) 端点初始化与数据传输处理;3) MIDI事件回调机制。关键点在于正确配置音频类描述符、实现Bulk传输端点,并处理MIDI数据包的解析与封装。该方法已验证可在STM32平台上实现标准USB MIDI设备功能,适用于音乐控制器等应用场景。原创 2025-09-22 16:52:50 · 224 阅读 · 0 评论 -
STM32实现USB的CDC+MSC+AUDIO的USB复合设备
本文介绍了在STM32F407上实现USB多功能复合设备(CDC+MSC+Audio)的详细方法。通过合并STM32CubeMX生成的CDC、MSC和Audio单功能工程代码,合理分配端点号和FIFO空间,配置复合设备描述符,并实现usbd_composite.c/h接口文件,最终实现了主机同时识别虚拟串口、U盘和音频设备的功能。关键步骤包括:端点分配避免冲突(EP1用于CDC,EP2/EP3用于MSC和Audio)、启用USE_USBD_COMPOSITE宏、调整接口数量配置(至少5个接口)、修改设备描述原创 2025-09-19 15:01:31 · 1211 阅读 · 0 评论 -
stm32 hal的usb端点号区分
本文摘要: 本文详细解析了STM32 USB OTG FS外设的FIFO配置和端点地址定义。主要包含:1)FIFO设置规则,包括RxFIFO共享接收、TxFIFO独立分配,以及1.25KB容量限制;2)端点地址编码规则,说明方向位(bit7)和端点号(bit0-3)的组成方式;3)实际配置示例,如CDC_IN_EP(0x81)表示EP1 IN端点,并指出HAL库函数参数与端点号的对应关系。特别强调FIFO总大小不得超过硬件限制,且TxFIFO需按端点号顺序设置。原创 2025-09-18 09:40:25 · 378 阅读 · 0 评论 -
STM32 通过USB的Mass Storage Class读写挂载的SD卡出现卡死问题
摘要: STM32CubeMX生成的SDIO和USB Mass Storage代码中,usbd_storage_if.c文件调用SD卡相关函数时出现卡死问题。解决方案:1. 在MX_SDIO_SD_Init中初始化SD卡,避免在STORAGE_Init_FS直接调用disk_initialize;2. 将SD卡读写函数改为DMA方式(HAL_SD_ReadBlocks_DMA/HAL_SD_WriteBlocks_DMA),并添加卡状态检查机制。修改后的代码通过DMA传输提高效率,同时确保在卡处于传输状态时原创 2025-09-16 17:17:09 · 439 阅读 · 0 评论 -
STM32F407跑4线SD卡问题记录
摘要:针对STM32CubeMX配置4线模式SD卡初始化失败导致无法挂载FATFS文件系统的问题,提出解决方案:在MX_SDIO_SD_Init()函数中,先将hsd.Init.BusWide设置为1线模式,后续BSP_SD_Init()函数会自动将其重新配置为4线模式。该方法通过分阶段初始化成功解决了SD卡识别与文件系统挂载问题,适用于STM32硬件平台开发。(99字)原创 2025-09-16 13:36:28 · 218 阅读 · 0 评论 -
在 Keil 中将 STM32 工程下载到 RAM 进行调试运行
本文介绍了如何在 Keil 中将 STM32 工程下载到 RAM 进行调试运行的方法,重点针对 STM32H750 芯片。主要内容包括:关闭默认 Memory Layout 配置、创建自定义 Scatter File 定义 RAM 内存布局、禁用 Flash 编程功能、配置调试初始化文件设置栈指针和向量表偏移,以及调整调试下载选项。通过这一系列配置,可实现代码直接加载到 RAM 运行,避免 Flash 擦写限制,提高调试效率。该方法也适用于其他 STM32 系列芯片,只需根据具体芯片的 RAM 地址和容量调原创 2025-09-09 16:23:07 · 1338 阅读 · 0 评论 -
STM32 程序不开机问题解决方案
STM32程序无法独立运行问题解决方案 问题:STM32程序下载后无法独立运行,需调试模式多次启动才能工作。 原因:标准库启用了semihosting机制,导致程序无调试器时卡在初始化阶段。 解决方案: MicroLIB方案(仅C项目): 在Keil中启用Use MicroLIB选项 禁用semihosting但功能有限 重定向I/O方案(推荐): 添加retarget_io.c文件 实现空的_sys_*函数禁用semihosting 可选择性重定向I/O到UART 关键点: 适用于C++项目 解决第三方库原创 2025-09-10 08:25:57 · 801 阅读 · 0 评论 -
基于 TensorFlow Lite Micro 的关键词识别(KWS)在 STM32F407VGT6 上的实现
本指南详细介绍了在STM32F407VGT6上使用TensorFlow Lite Micro实现yes/no关键词识别的完整流程。内容包括下载TFLM源码及其依赖库(Flatbuffers、Pigweed、KissFFT、gemmlowp和ruy),以及编译所需的C/C++源文件。系统采用"两模型管线"设计,包含独立的音频预处理模型和分类模型,针对嵌入式设备进行了优化。该实现改编自官方micro_speech示例,为开发者提供了在资源受限设备上部署轻量级语音识别功能的实用方案。原创 2025-08-29 14:52:38 · 677 阅读 · 0 评论 -
JLink的RTT打印工具使用教程
2、把SEGGER_RTT_Conf.h、SEGGER_RTT.c、SEGGER_RTT.h、SEGGER_RTT_printf.c把这4个文件拷贝到KEIL工程里面,然后把对于的.c文件添加到工程,并添加对于的头文件路径。5、如果选择Auto没有打印出来,可能是RTT控制块(_SEGGER_RTT)的地址需要手动设置,启动KEIL的debug功能,查看_SEGGER_RTT控制块对于的地址,把它填到Address下面就可以了。(3)对于的接口方式,SWD、JTAG等等。5、选择对应RTT打印配置。原创 2025-05-21 15:46:40 · 730 阅读 · 0 评论 -
使用vscode 搭建keil编译环境
9、在settings.josn里面配置的"corter-debug.armToolchainPath"参数下面配置GNU Arm Embedded Toolchain的路径,如下图。在vscode上面使用Embedder IDE插件编译stm32 ,nxp等芯片,使用Cortex Debug在线调试功能。3、确认keil安装目录下的编译工具的路径,填到Embedder IDE配置下面,如下图。6、根据实际情况配置工程.axf或者.elf文件的路径。一、配置vscode使用keil工程编译。原创 2025-05-22 16:54:29 · 2394 阅读 · 0 评论 -
使用python把keil工程转makefile工程编译下载使用说明
如果使用非标准安装路径# 启用更多警告# 生成更多调试信息# 链接时优化# 在 build_config.mk 中添加。原创 2025-07-24 13:20:59 · 1225 阅读 · 0 评论 -
STM32 HardFault_Handler 死机信息打印
在HardFault_Handler里面把相关寄存器的值打印出来,初步判断死机原因和死机地址。原创 2025-07-24 13:12:08 · 458 阅读 · 0 评论
分享