
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
摘要:禁用C++异常处理优化STM32内存占用 在STM32G431RBT6(128KB内存)上开发FOC电机控制项目时,通过添加"-fno-exceptions"编译选项禁用C++异常处理机制,使程序大小从53,884B降至49,444B,节省了4.335KB空间。该优化会禁用try-catch异常处理,并使标准库函数在失败时直接终止而非抛出异常。由于嵌入式开发通常不使用C+

Embedded IDE官网:https://em-ide.com/docs/intro我猜肯定有部分人使用SI + Keil开发STM32项目,也有vscode + Keil开发STM32程序。SI或vscode编写代码,然后切换Keil编译、下载、调试程序。有一段时间,我也是这么干的。但是,程序切换来,切换去,把我整得特别难受,最终还是忍受着远古开发工具的环境,纯Keil开发。在参与新的项目开

参考安富莱教程:《我发现RTT Viewer可以跟J-Scope一起开起来监控,一边检测log,另外一边检测波形,真的很爽。如上所示,左边RTT Viewer与右边的J-Scope都是在监控同一个全局变量sineValue。项目源码:https://github.com/q164129345/MCU_Develop/tree/main/jlink_scope_hss。

本实验参考安富莱教程《还有参考J-Scope的官方教程:https://kb.segger.com/UM08028_J-Scope如上图所示,正弦波跟PWM波的周期都是1ms,定时器的回调周期是100us。项目源码:https://github.com/q164129345/MCU_Develop/tree/main/jlink_scope_rtt。

本文总结了STM32项目从Keil迁移到GCC开发环境时遇到的几个关键问题及解决方案。主要问题包括:1)EIDE插件与J-Link+RTT日志方案不兼容,改为USART2输出日志;2)GCC编译的Bootloader跳转APP时出现HardFault故障,通过注释SCB->VTOR设置解决。文章还提供了OTA升级流程图和项目开源地址,分析了不同编译器导致行为差异的原因(中断时机与向量表处理的

在上一章节的第4.3章节提到,如果消息包不包含时间戳的话,那么J-Scope的横坐标的单位时间默认是100us,说白了时间戳是假的。为解决上述问题,参考官方提供的时间戳例程,为消息包添加上时间戳。效果如下:项目源码:https://github.com/q164129345/MCU_Develop/tree/main/jlink_scope_rtt_dwt_timestamp。

有些同学刚从Keil或者IAR等开发环境切换到VScode + GCC开发环境时,不知道构建器怎样设置最合适。所谓最合适就是代码体积更小,降低堆栈的要求,提高代码的执行效率等等。

本文介绍了如何在VSCode+EIDE环境下为STM32固件添加CRC32校验码。主要步骤包括:1)准备crc_add.bat和srec_cat.exe工具;2)修改脚本中的输入输出文件名;3)配置构建器选项添加后处理命令;4)编译后自动生成带CRC校验的固件文件。该方法可确保固件完整性,防止IAP升级时出现"变砖"问题。文章提供了GitHub和Gitee源码链接,方便开发者参

本文总结了STM32项目从Keil迁移到GCC开发环境时遇到的几个关键问题及解决方案。主要问题包括:1)EIDE插件与J-Link+RTT日志方案不兼容,改为USART2输出日志;2)GCC编译的Bootloader跳转APP时出现HardFault故障,通过注释SCB->VTOR设置解决。文章还提供了OTA升级流程图和项目开源地址,分析了不同编译器导致行为差异的原因(中断时机与向量表处理的

本文介绍了基于STM32F405、CubeMX和HAL库实现FOC电机速度闭环控制的方法。通过将TIM4回调周期从500us缩短至50us,优化了电流环执行频率,解决了电机运行卡顿问题。文章提供了完整的项目代码地址(Gitee和GitHub),并展示了关键代码实现,包括电流采样和速度闭环控制配置。实验结果表明,加入电流环控制后,电机扭矩性能得到显著提升,实现了真正的FOC控制。








