OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7841|回复: 7

一起来撸F3——SP Racing F3 豪华版飞控作为开发板——硬件IIC使用DMA驱动HMC5883L与MPU6050,轮询驱动MS5611

[复制链接]

9

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
166
金钱
166
注册时间
2015-12-30
在线时间
32 小时
发表于 2018-9-8 17:55:41 | 显示全部楼层 |阅读模式
隔了好久我又来了。前阵子粗略学习算法,,,,嗯,好难,先把驱动写完再说吧。
今天带来的是使用硬件IIC驱动三个最重要的传感器。
磁罗盘HMC5883L,六轴惯性MPU6050,气压计MS5611。总的来说,罗盘最简单,气压计最麻烦。
参考网上的资料,很多人都做了这三种元件的驱动例程,我就不太废话了,简单就是初始化后读取数据,要注意一些时间上的问题参考他们的数据手册,有一些AD时间要注意,因为如果读取太快,AD转换未完成,读取的数值是没有意义的,一般6050超级快,不用管,5883一般初始化为75Hz,那么读取就不能比75Hz快,考虑协调舵机的控制,用50Hz读罗盘比较合适。最慢的是气压计,气压计读取要分别读取温度AD和压力AD,根据数据手册,最长时间都是10ms,也就是50Hz,我这里只是做例程,就同意10Hz读取,避免麻烦。在后面的写飞控框架的时候我会精调时序。(当然融合,解算,控制可还没学懂,到时候打算用几ms延时代替相应的函数)
非常值得说的有两点。
一、DMA方式操作时,占用CPU的时间只是链接通道和启动传输,所以很快就完成了,但实际上DMA在传输中最好不要更新链接通道或启动传输命令,以免造成意想不到的错误,我在例程中用了延时1ms,在实际飞控中,这些时间也要用来进行计算。具体需要多久来传输,最简单的方法时用逻辑分析仪来看,例程中有一个TSET_PIN就是用来测时序的,我最终用过后把它删了,可以再"gpio.h"中看到他的对应IO,用的是板子上的PWM输出的一个引脚,具体忘记了,哈哈。
二、关于MS5611 ,有两个小点,首先是读取校准值,不知为什么,虽然他们的寄存器是连续的,却不能一次读出,必须分成6次读取六个值。一次读取只会得到一堆0xFF。其次,网上很多例程一个抄一个,都是错的。在读取校准值时,C1对应的地址是0xA2,不是首地址0xA0,0xA0是制造商序号,没有实际意义。网上很多例程都是0xA0开始读取,肯定没有测试就抄过来,很不负责任。官方给的例程是Arduino的,十分详细,也是正确的,可以参考。


下面链接包含了数据手册和例程。
例程:
链接:https://pan.baidu.com/s/1hwzzZCtMuKcrVn_QrALkuw 密码:c9l5




小彩蛋等一会儿再写一个SPI驱动WS2812的简单例程。
链接:https://pan.baidu.com/s/19RFv9coA_tmdgrS_7oAb0w 密码:zjmo


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2018-10-20
在线时间
6 小时
发表于 2018-12-29 20:38:03 | 显示全部楼层
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2018-1-15
在线时间
23 小时
发表于 2019-1-3 13:36:21 | 显示全部楼层
真的很感激啊
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2019-7-22
在线时间
2 小时
发表于 2019-7-24 09:08:35 | 显示全部楼层
感谢楼主大大分享!!!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2019-11-28
在线时间
0 小时
发表于 2020-1-5 16:35:50 | 显示全部楼层
你好  我在用F427写飞控  有兴趣 加qq  643375731
回复 支持 反对

使用道具 举报

0

主题

60

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3392
金钱
3392
注册时间
2020-4-9
在线时间
309 小时
发表于 2020-4-14 15:01:14 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2020-5-5
在线时间
6 小时
发表于 2020-5-29 10:30:30 | 显示全部楼层
楼主连接取消了,能加QQ讨论问题吗?940700962,谢谢
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
322
金钱
322
注册时间
2018-5-27
在线时间
103 小时
发表于 2021-11-29 21:28:11 | 显示全部楼层
楼主链接能再上吗,资料消失了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 14:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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