自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 关于MPU6050读取角度数据异常,为0。

摘要:调试MPU6050时发现数据输出不稳定,经排查硬件配置和软件时序均正常。最终发现MPU6050需在STM32初始化前上电才能正常工作。解决方法是在主函数起始处添加500ms延时,确保传感器先完成上电。该问题凸显了嵌入式系统中外设与主控上电时序的重要性。

2026-01-28 16:32:03 133

原创 读取MPU6050输出数据分别进行卡尔曼滤波和一阶互补滤波的数据融合算法(基于STM32HAL库)

本文介绍了基于MPU6050的姿态解算方法,重点分析了软件I2C通信实现、一阶互补滤波和卡尔曼滤波算法。首先详细阐述了软件I2C的读写时序实现,包括起始/终止条件、地址发送和数据传输等关键步骤。其次讲解了一阶互补滤波原理,通过加权融合加速度计角度和陀螺仪积分角度,实现简单有效的姿态估计。最后深入解析了卡尔曼滤波算法,包括状态方程构建、协方差矩阵更新和卡尔曼增益计算等核心环节,并提供了完整的代码实现。实验结果表明,两种滤波方法均能有效融合加速度计和陀螺仪数据,实现稳定的姿态解算。

2026-01-21 13:08:32 886

原创 FreeRTOS多任务读取同一队列问题,数据共享问题

摘要:针对多任务共享队列导致的阻塞问题,提出了三种解决方案:1)统一使用xQueueReceive避免数据残留;2)采用事件组实现任务同步;3)推荐使用共享数据区+互斥锁机制。方案3通过全局共享变量结合时间戳判断数据新旧,配合事件组通知,从根本上解决了队列饥饿和数据锁定问题。所有方案均需在主函数初始化系统资源,避免句柄丢失。三种方案均有效,其中方案3在实时性和内存效率方面表现最优,特别适合多消费者场景。

2026-01-19 10:46:54 631

原创 关于FreeRTOS进行重定向printf打印出现卡死问题

摘要:本文针对printf导致的栈溢出问题提出三种解决方案:1)直接增加堆栈大小(128→512字节);2)优化printf实现,使用互斥锁保证线程安全,静态缓冲区减少栈消耗;3)采用环形缓冲区方案,实现异步串口打印。方案二通过分离格式化与发送逻辑,将栈消耗从数百字节降至50字节以下。方案三进一步使用1024字节环形缓冲区配合互斥锁,实现高效线程安全的数据传输。三种方案在栈消耗、线程安全性和实时性上形成递进优化关系。

2026-01-17 23:27:55 388

空空如也

空空如也

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

TA关注的人

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