stm32f411 + mpu9250 +FreeRTOS(UCOSii 2.9) 死机

2019-07-20 17:33发布

本帖最后由 爱因福尔 于 2017-1-6 14:41 编辑

遇到一个特别奇怪的问题,单片机用的STM32F411 用了一个MPU9250的九轴传感器,用的是原子的mpl库。
之前是裸奔的也没发现什么问题,后来上了freertos 发现会死在HardFault_Handler里,开始以为是堆栈问题,
将设大
   Stack_Size      EQU     0xF000
   Heap_Size      EQU     0xF000
还是不行,以为Freertos有bug,就换了个ucosII结果还是一样,
最终问题定位到
   QQ截图20170106142838.png

然后有查看inv_build_compass(compass,0,sensor_timestamp); 里面有什么
源代码如下
QQ截图20170106144014.png

最后发现居然是 一个赋值表达是      sensors.compass.status |= INV_NEW_DATA | INV_SENSOR_ON;  导致的,
在深入研究发现是  INV_NEW_DATA注释掉就好了。也就是
sensors.compass.status |= INV_SENSOR_ON;  是不会死的。  

真是太无语了。虽然找到了问题,但是没有找到解决方法。
哪位遇到过。望提点一二。不胜感激。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。