xd44512016
发表于 2019-5-23 16:03
你好,最近我也在研究ST的MotionFX库,遇到了个问题。希望你能帮忙解答下。我下的最新的en.x-cube-mems1 6.1版本的(据说不需要license了),移植后可以编译成功,用调试器调试的时候发现程序卡死在“MotionFX_initialize()”这个函数里面了。 请问是不是需要申请license? 在哪里申请? 谢谢!
littleshrimp
发表于 2019-5-23 19:04
xd44512016 发表于 2019-5-23 16:03
你好,最近我也在研究ST的MotionFX库,遇到了个问题。希望你能帮忙解答下。我下的最新的en.x-cube-mems1 6. ...
建议你读一下这个文档
Getting started with the osxMotionFX fusion and compass library
for X-CUBE-MEMS1 expansion for STM32Cube
https://my.st.com/content/ccc/resource/technical/document/user_manual/5f/bd/32/5a/ba/25/4d/42/DM00163313.pdf/files/DM00163313.pdf/jcr:content/translations/en.DM00163313.pdf
另外需要注意osxMotionFX这家伙的状态
xd44512016
发表于 2019-5-26 16:27
littleshrimp 发表于 2019-5-23 19:04
建议你读一下这个文档
Getting started with the osxMotionFX fusion and compass library
for X-CUBE- ...
谢谢,这个问题已经解决,现在用MotionFX已经可以得到6轴(传感器为LSM6DSL:3轴加速度+3轴陀螺仪)融合的输出数据了。
但是遇到另一个问题:我把传感器转动(航向角)90度,输出的航向角数据只变化了18度左右.我把传感器调整到航向角的零位置,然后转动一圈,输出数据(航向角)只有70几度的样子,于是我继续转动传感器,转了大概5圈的样子传感器输出数据(航向角)才变为360。给人的感觉是输出数据被成倍数缩小了似的。
输出数据为MotionFX库 output函数中的rotation数据。未作任何其它处理。
希望能帮忙解答,谢谢!
littleshrimp
发表于 2019-5-26 17:00
xd44512016 发表于 2019-5-26 16:27
谢谢,这个问题已经解决,现在用MotionFX已经可以得到6轴(传感器为LSM6DSL:3轴加速度+3轴陀螺仪)融合 ...
检查一下定时器更传感器数据的频率,应该是这个地方的问题。
xd44512016
发表于 2019-5-27 15:36
littleshrimp 发表于 2019-5-26 17:00
检查一下定时器更传感器数据的频率,应该是这个地方的问题。
谢谢,已经成功调通,问题出在MOTIONFX_ENGINE_DELTATIME 上,例程是#define MOTIONFX_ENGINE_DELTATIME0.01f我把这个值改成0.04f就解决问题了。
littleshrimp
发表于 2019-5-27 16:49
xd44512016 发表于 2019-5-27 15:36
谢谢,已经成功调通,问题出在MOTIONFX_ENGINE_DELTATIME 上,例程是#define MOTIONFX_ENGINE_DELTATIME...
谢谢你把解决问题的方法反馈回来
xd44512016
发表于 2019-5-28 16:12
分享一下我移植ST官方MotionFX库过程中遇到的一些问题和解决办法吧,希望可以帮助有需要的人。
硬件平台:STM32L412+LSM6DSL+LIS2MDL (做9轴姿态融合解算)
软件平台:MDK + MotionFX (MotionFX 现在不需要License了,包含在 X-CUBE-MEMS1文件里面,需要在官网下载:https://www.st.com/content/st_com/zh/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32cube-expansion-packages/x-cube-mems1.html)
准备LSM6DSL+LIS2MDL的驱动文件以及MotionFX库文件,然后参照 X-CUBE-MEMS1\Project中的例程进行编译器的设置,以及程序的初始化设置,这里就不赘述了。主要说说要注意的地方。
1.MDK加载MotionFX库文件后要将其设置为“Library file”,默认是“Assembly language file” ,不然编译不能通过,会报出很多错误;
2. 程序初始化设置的时候一定要初始化 CRC 并开启它,不然无法初始化MotionFX,程序会卡死在MotionFX_initialize()这个函数中;
3.堆栈设置,在startup_stm32xxxx.s文件中将Stack_Size的大小改为4000及以上,不然磁矫正通不过或者卡死在MotionFX_update()或者MotionFX_propagate()函数中。
4.输出,同时使能6轴和9轴MotionFX融合算法,输出rotation数据会乱。
5.如果数据可以正常输出但是实际转角与输出rotation对不上可以适当改变MOTIONFX_ENGINE_DELTATIME 这个参数的值。
littleshrimp
发表于 2019-5-28 18:01
xd44512016 发表于 2019-5-28 16:12
分享一下我移植ST官方MotionFX库过程中遇到的一些问题和解决办法吧,希望可以帮助有需要的人。
硬件平台 ...
很详细,非常感谢!
2366079297
发表于 2019-8-6 16:11
<p>生成的keil库文件osxMotionFX107_CM4_Keil_ot.lib,是否可以用到其他的MCU,比如stm32f103,或者其他的?</p>
littleshrimp
发表于 2019-8-6 16:40
2366079297 发表于 2019-8-6 16:11
生成的keil库文件osxMotionFX107_CM4_Keil_ot.lib,是否可以用到其他的MCU,比如stm32f103,或者其他的?
其他单片机不确定 一起听说可以向ST申请 其他品牌的单片机也可以使用
小粟粟
发表于 2020-3-9 23:15
楼主,只有磁力计和加速计可以用这个算法库吗?我现在用lsm303agr做一个指南针
littleshrimp
发表于 2020-3-10 07:15
本帖最后由 littleshrimp 于 2020-3-10 07:16 编辑
<div class="quote">
<blockquote><font size="2"><a href="forum.php?mod=redirect&goto=findpost&pid=2952862&ptid=523508" target="_blank"><font color="#999999">小粟粟 发表于 2020-3-9 23:15</font></a></font> 楼主,只有磁力计和加速计可以用这个算法库吗?我现在用lsm303agr做一个指南针</blockquote>
</div>
<p>应该不行,你看看这个文档</p>
<p> </p>
<p> </p>
<p></p>
winniever
发表于 2020-4-26 11:47
xd44512016 发表于 2019-5-23 16:03
你好,最近我也在研究ST的MotionFX库,遇到了个问题。希望你能帮忙解答下。我下的最新的en.x-cube-mems1 6. ...
<p>你好,请问为啥MotionFX_initialize、MotionFX_propagate这些函数在例程里找不到函数原型?</p>
littleshrimp
发表于 2020-5-2 10:34
winniever 发表于 2020-4-26 11:47
你好,请问为啥MotionFX_initialize、MotionFX_propagate这些函数在例程里找不到函数原型?
代码是以库的形式提供的 直接调用就可以
longlongx
发表于 2020-5-4 17:13
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>看起来很好的样子,等我有钱再来买!</td>
</tr>
</tbody>
</table>
winniever
发表于 2020-5-6 10:06
littleshrimp 发表于 2020-5-2 10:34
代码是以库的形式提供的 直接调用就可以
<p>懂了,是这种库MotionFX_CM3_wc16_ot.a吧?CM3的库能用在f103/107这样的M3内核上吗?</p>
littleshrimp
发表于 2020-5-7 13:03
winniever 发表于 2020-5-6 10:06
懂了,是这种库MotionFX_CM3_wc16_ot.a吧?CM3的库能用在f103/107这样的M3内核上吗?
<p>你可以试一下,具体看官方提供的资料。</p>
天黑在动手
发表于 2020-6-18 09:22
<p></p>
<p>这个函数的时间戳指的是啥,不知道传什么。</p>
littleshrimp
发表于 2020-6-18 12:15
天黑在动手 发表于 2020-6-18 09:22
这个函数的时间戳指的是啥,不知道传什么。
<p>FP-SNS-ALLMEMS1</p>
<p>https://www.st.com/content/st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32-ode-function-pack-sw/fp-sns-allmems1.html</p>
<p>STM32CubeFunctionPack_ALLMEMS1_V4.0.0\Projects\STM32L4R9ZI-SensorTile.box\Applications\ALLMEMS1\Src\main.c</p>
<p></p>
贤哥电子
发表于 2024-5-17 15:28
<p>我这个摇了半天,都没校准成功,感觉是不是校准错了?按照手册的流程进行的。</p>
<div style="text-align: center;"></div>
<div style="text-align: center;"></div>
<p> </p>