你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

F4-Discovery连接MPU9250【MD6.12 keil移植】 精华  

[复制链接]
watershade 发布时间:2015-8-8 14:46
阅读主题, 点击返回1楼
1 收藏 12 评论117 发布时间:2015-8-8 14:46
117个回答
watershade 回答时间:2016-3-31 13:37:28
lzm1019 发表于 2016-3-30 21:25
多谢!
关于物理连线,确认过多次,应该没有问题。
昨天调试,发现无法跳转main(),实际应操作失误。但具 ...

首先你不能选择SetSysClock,这样时钟的配置应该会除了问题。之前你的程序卡在这里,就是因为时钟设置的问题。如果你用的是nucleo,那么主芯片的时钟是从另一个片子的MCO来得,是8MHZ。我记得之前观察程序发现使用的是外部时钟。时钟的配置需要做一些修改,怎么修改呐。在main函数的开头,有boardInit的部分,这里面的开始就是配置了一下系统时钟,然后是systick。你而SystemCoreClock是系统的宏定义,在原始代码中是168000000。而411则不是这个数值,这个数值与你最终配置的有关。但是这里你是直接追踪不到时钟配置的,时钟的配置是在SystemInit里面执行的,起初会使用HSI时钟,然后再通过SetSysClock()来是能PLL时钟。但是这部分的具体工作你最好查一下网络。
lzm1019 回答时间:2016-3-31 16:39:08
watershade 发表于 2016-3-31 13:37
首先你不能选择SetSysClock,这样时钟的配置应该会除了问题。之前你的程序卡在这里,就是因为时钟设置的 ...

多谢!
按您的指导,仔细梳理系统时钟相关的配置:
1)启动时,在System_stm32f4xx.c中给了宏定义 SystemCoreClock = 100000000; 即100MHz;但systemInit()并未定义 SystemCoreClock;而是调用SetSysClk()来配置系统时钟。若采用您所提到的nucleo,时钟由外部供给,则需定义USE_HSE_BYPASS,进而HSE_ON,使得系统时钟配置为PLL;
不过,我的PCB是自制的,使用板上8MHz Resonator(无源);与nucleo不同,故未定义 USE_HSE_BYPASS。
2)进入main()后,调用board_init();最初,调用SystemCoreClockUpdate(); 这个函数我看后,理解就是配置SystemCoreClock = HSI_VALUE; 即16MHz,另外AHB预分频,但是实际取的是AHBPrescTable[[0],即不分频,SystemCoreClock保持16MHz不变。
综述之,在启动文件里,并未设置系统时钟 = HSE,且将RCC->CFGR复位为0;那么进入main()后调用SystemCoreClockUpdate()配置系统时钟时,tmp = RCC->CFGR & RCC_CFGR_SWS,其值为0;经switch(tmp)选择,SystemCoreClock = HSI_VALUE。也就是说,在启动和初始化两个阶段,系统时钟一直未配置成PLL。
那么,系统时钟是否必须配置成100MHz,以满足后面的代码应用呢?若是,在何处调整代码呢?
watershade 回答时间:2016-4-1 22:56:27
lzm1019 发表于 2016-3-31 16:39
多谢!
按您的指导,仔细梳理系统时钟相关的配置:
1)启动时,在System_stm32f4xx.c中给了宏定义 System ...

起初都是使用HSI然后使用SystemInit里面的程序来设置成HSE pll 至于在哪里设置的,你如果使用keil可以全局搜索一下,我记着应该是在s文件中。
建议你在搜索一下时钟设置的文章,那里面的介绍的更多。祝你成功
乌了个龟的 回答时间:2016-4-26 19:54:47
lzm1019 发表于 2016-3-30 15:16
再麻烦您一下。
之前您提到的STM32F411的移植代码,还能找到吗?可否提供我参考下。多谢!
============= ...

你好!
我在运行eMPL-Client.py时也遇到和你一模一样的问题,请问你现在是否已经解决,如果已解决能否请教一下解决方法,谢谢!
lzm1019 回答时间:2016-5-7 11:48:05
乌了个龟的 发表于 2016-4-26 19:54
你好!
我在运行eMPL-Client.py时也遇到和你一模一样的问题,请问你现在是否已经解决,如果已解决能否请 ...

eMPL_client.py的问题,解决了。版本的问题。
Invensense的文档(Motion Driver 6.12 – Getting Started Guide )里所给出的链接如下:
-------------------
Python: http://www.python.org/downloads/
Pyserial: http://pypi.python.org/pypi/pyserial
Pygame: http://www.pygame.org/download.shtml
------------------
其中:
python我选择的是2.7版;但pyserial是按链接下载了3.0.1版。问题就在这里。
后面下载pyserial2.7,链接http://pypi.python.org/pypi/pyserial/2.7
替换安装pyserial后,启动eMPL_client.py就能顺利收到DMP上传的数据了。
乌了个龟的 回答时间:2016-5-23 08:51:18
lzm1019 发表于 2016-5-7 11:48
eMPL_client.py的问题,解决了。版本的问题。
Invensense的文档(Motion Driver 6.12 – Getting Started ...

真是太感谢了!
Kiwi000 回答时间:2016-6-30 22:37:48
楼上各位大神,请问这个可以移植到STM32F1系列上嘛?
charmyoung 回答时间:2016-7-31 17:27:14
赞赞赞赞赞赞赞赞赞赞赞赞!!!
charmyoung 回答时间:2016-7-31 17:27:34
还有更新的代码么?!
watershade 回答时间:2016-8-1 23:27:52
charmyoung 发表于 2016-7-31 17:27
还有更新的代码么?!

最近没有更新,过段时间做自己的底盘的时候再更新。
不过你可以看看Fairchild的FMT-1030和FIS1100,这两款带算法。
如果你想快速的话...
y有更好的方案欢迎沟通。
春夜喜小雨 回答时间:2016-9-19 22:44:59
大神,你有没有测试你这个三个角度,准确性以及稳定性怎么样子~
watershade 回答时间:2016-9-20 00:05:57
春夜喜小雨 发表于 2016-9-19 22:44
大神,你有没有测试你这个三个角度,准确性以及稳定性怎么样子~

用串口接收之后用excel做过表,要求不高还成。话说,这个库是官方的。要是你想让漂移和稳定性在0.5度以下很难。国外有个YEI的公司提供的稳定性能到0.05度,我都震惊了。
春夜喜小雨 回答时间:2016-9-21 10:39:21
watershade 发表于 2016-9-20 00:05
用串口接收之后用excel做过表,要求不高还成。话说,这个库是官方的。要是你想让漂移和稳定性在0.5度以下 ...

那你这个精度大约是在什么范围内啊,有没有稳定在1°啊~
watershade 回答时间:2016-9-24 22:04:13
春夜喜小雨 发表于 2016-9-21 10:39
那你这个精度大约是在什么范围内啊,有没有稳定在1°啊~

稳定性还可以。精度就难说了,我说的是绝对精度。因为没有办法准确测量。而且受地点和校准影响较高。但是粗略估计应该能够在正负5度的偏差。但是有干扰时,就另说。建议看看专业的测量数据。
zbber 回答时间:2016-9-24 23:55:40
我只是路过打酱油的,嘿嘿

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版