楼主

[嵌入式] 【求助帖】前辈们帮忙看看这个姿态解算代码哪里写的问题

[复制链接]
步兵来自98k的盲僧
111金钱
"main.c",思路是用SPI读取加速度计和陀螺仪的数据,分别存放在accelerometer[3]和gyro[3]中,然后用MahonyAHRSupdateIMU和get_angle函数计算得到姿态角。

"MahonyAHRS.c",sampleFreq和C板教程上给的一致,也是1000.0f,MahonyAHRSupdateIMU函数也和C板例程一致,直接Copy过来的。

最终的效果有些无法描述,因为不知道搞出来的到底是啥。
静止测试:板子放在桌子上,官方的程序运行出来INS_angle[1]接近于0,但是我这个运行出来会增长到0.5左右。
运动测试:晃几下板子,在把板子静止放在桌子上,INS_angle[1]又变成其他。
看到官方的程序用到了Freertos还有dma,而我这个没用到,不知道是不是这个的原因。

bmi088-2.rar

6.47 MB, 下载次数: 18

跳转到指定楼层
沙发

[嵌入式] 【求助帖】前辈们帮忙看看这个姿态解算代码哪里写的问题

[复制链接]
步兵来自98k的盲僧
 楼主| 2022-5-3 20:10:38 显示全部楼层
找到解决办法了。
根据C板教程第3章,把TIM1搞到1000HZ,把附件里While(1)里的代码放到定时器回调函数HAL_TIM_PeriodElapsedCallback()里,main函数里别忘了开启定时中断HAL_TIM_Base_Start_IT(&htim1)。
运行,效果还可以,比不上官方代码的效果,但是大致数据已经是正确的了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

触屏版 | 电脑版

Copyright © 2024 RoboMasters 版权所有 备案号 粤ICP备2022092332号

快速回复 返回顶部 返回列表