logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

STM32 - Embedded IDE - GCC - 在C、C++混合开发,C++编译器选项增加“-fno-exceptions“,可以进一步缩小代码的大小

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

文章图片
#stm32
STM32F407 | Embedded IDE01 - vscode搭建Embedded IDE开发环境(支持JLINK、STLINK、DAPLINK)

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

文章图片
#ide#stm32#vscode
SEGGER | 基于STM32F405 + Keil - RTT组件05 - J-Scope数据可视化,使用HSS方式

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

文章图片
#stm32#嵌入式硬件#单片机
SEGGER | 基于STM32F405 + Keil - RTT组件06 - J-Scope数据可视化,使用RTT方式

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

文章图片
#stm32#嵌入式硬件#单片机
STM32F103_Bootloader程序开发15 - 从Keil到vscode + EIDE + GCC的迁移实践

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

文章图片
#stm32
SEGGER | 基于STM32F405 + Keil - RTT组件07 - J-Scope数据可视化,RTT方式 + DWT定时器时间戳

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

文章图片
#stm32#单片机
STM32 - Embedded IDE - GCC - 编译器设置的最佳方案

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

文章图片
#vscode
STM32 - Embedded IDE - GCC - 如何将编译得到的.bin固件添加CRC32校验码

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

文章图片
#stm32
STM32F103_Bootloader程序开发15 - 从Keil到vscode + EIDE + GCC的迁移实践

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

文章图片
#stm32
无刷电机控制 - STM32F405+CubeMX+HAL库+SimpleFOC08,速度闭环控制(有电流环)

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

文章图片
#stm32#嵌入式硬件#单片机
    共 133 条
  • 1
  • 2
  • 3
  • 14
  • 请选择