BMX055驱动日记

来源:互联网 发布:宝鸡加工中心编程招聘 编辑:程序博客网 时间:2024/05/01 23:52
上一篇提到过位域的问题,而我学习位域主要是,运用在BMX055的驱动上,这篇博客讲讲怎么驱动BMX055,BMX055是一款九轴传感器(包含陀螺仪,加速度计和地磁计)。用店家的例程时候发现数据完全不对,但是至少出来了数据,说明I2C部分是对的,于是我把原工程的I2C部分保留了下来,其余部分准备自己翻看手册来写。翻看手册后,大概看了一下,前面一大堆讲的是芯片特性,各种模式,中断配置等等,由于之前使用过MPU6050,所以对这类传感器的配置较为熟悉,所以直接直接跳到了寄存器部分,找到软件复位的寄存器,配置让加速度计先软件复位,之后再设置了传感器的范围,然后开始从寄存器读数据,加速度计是12位的,存在两个寄存器里面,所以需要将两个寄存器的数据相或,并且用位域的方法取出12位有效数据并强制转化为32位,同样的方法用于陀螺仪的时候不行,看了好久才发现问题所在。错误代码如下:
for(i = 0; i < 3;i ++)//0 1 2  0 1 2 3 4 5{Gyro_dat[i] = (float)((int)(BMX055_GBUF[2*i] | BMX055_GBUF[2*i+1]<<8))*GyroSen;}

其中,int是32位的,而数组定义是无符号8位,首先ARM存储数据是按4字节空间来存储的,所以8位char类型可以直接左移,但是,左移后直接转化为32的数据这个过程中会丢掉符号位,所以实验结果陀螺仪数据全是正数,这里算是个小坑,把int 换为 short int 结果就正常了。
最后用同样的方法处理地磁计,结果地磁计的数据还是全0,回去翻看数据手册,看到磁力计有四种模式,睡眠,挂起,掉电,工作模式,手册上写着“Soft reset always brings the device into sleep mode”,意思软复位会将传感器变为睡眠模式,所以需要再将传感器变为工作模式,之后数据终于正常了。至此,BMX055驱动编写完成。
另外BMX055还有其他一些功能,包括支持SPI接口,暂时用不到所以没有继续研究。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 想退换货但是发票丢了怎么办 快递没有当面验货造成的丢件怎么办 退货卖家收货验货说有问题怎么办 没当着快递人员面验货少货怎么办 微信绑定的银行了被快捷支付怎么办 银行支付到微信支付里的钱怎么办 微信绑定银行忘支付密码忘了怎么办 微信桂林银行不可以支付怎么办 微信忘记支付密码和银行卡号怎么办 京东商城迟迟不通过退货审核怎么办 网上购物想退款商家要我拒收怎么办 运输公司对车主不买保险怎么办 苹果平板限制访问密码忘了怎么办 安卓手机忘了解锁密码怎么办 海之蓝扫码显示域名不对这是怎么办 华为手机丢了帐号密码忘记了怎么办 电脑会员系统账号密码忘记了怎么办 推广渠道客户要求免费铺货怎么办 代理机构做的网站找不到人了怎么办 瓷砖买的和描述的不一样怎么办 网上买东西地址的省份写错了怎么办 驾校把预留号码注册错了怎么办 太害羞了不敢进店买东西怎么办 收件箱邮箱邮件满了但不想删怎么办 模拟人生畅玩版任务时间过了怎么办 快递放柜子里长时间不拿怎么办 古筝的筝码序号错了怎么办? 极限竞速3地平线爆内存怎么办 车载导航安卓系统禁止装软件怎么办 在微信上买东西买到假货怎么办 想从新西兰寄红酒到家运费怎么办 新买的裤子掉色把内裤染色了怎么办 白衣服变脏变黄怎么办用英文怎么说 经常宅在家里不爱出去玩怎么办 在家里呆不住老想着往外跑怎么办 新商盟网上订烟登录密码忘了怎么办 在拼多多购物质量有问题怎么办 美图手机总弹出一键加速广告怎么办 手机看小说总是喜欢弹出广告怎么办 美团外卖商家注册门头不合格怎么办 手机一打网页就自动弹出广告怎么办