
简介
该用户还未填写简介
擅长的技术栈
未填写擅长的技术栈
可提供的服务
暂无可提供的服务
HAL库大雷预警!STM32 HAL库CAN启动超时解决办法
STM32 CAN控制器启动失败问题分析与解决 在STM32F103芯片上开发CAN驱动时,发现HAL_CAN_Start()函数始终返回超时错误。经排查,CAN初始化成功后MCR和MSR寄存器值异常,特别是MSR中的WKUI位被意外置位。这个问题源于HAL库未处理WKUI标志,导致硬件无法正常检测总线空闲状态,INAK位无法清零。解决方案是绕过HAL状态机,在启动前手动清除WKUI位,并通过发送

STM32中printf的重定向详解
在STM32开发中如何重定向printf函数到串口输出。在Keil MDK环境下,若使用MicroLib库只需重写fputc函数;否则需禁用半主机模式并实现相关桩函数。对于GCC工具链,核心是重写_write函数,并可选添加浮点打印支持。两种方法本质都是将标准库输出函数映射到硬件串口驱动,实现调试信息的串口打印。

C++11新特性:aligned_storage等空间分配工具
这不仅会导致 B 的数据部分超出 storage 范围,产生内存溢出,同时,如果 flag 的地址不满足 B 的对齐需求,可能会触发未定义行为,而且,A 和 B 同时存在,析构时如果 A 和 B 的内存范围重叠,析构函数可能破坏彼此的数据。为了避免内存重叠的问题std::aligned_union 分配的内存块通常只用于存储一个对象。该工具可用于在内存池中向用户分配内存块。

到底了







