调试MAG3110地磁传感器心得体会
可能是IIC通讯引脚未加上拉电阻!!(爆锤自己,2019.1.21留)
-----------------------------以下写于2018年---------------------------------
首先先骂两句,这个传感器至少浪费了我三天去调试,最后的结果还是没有调试成功!
为什么我要选择放弃呢,原因有三:
1,芯片本身不稳定,我买的两块有一块在使用几次后再也无法驱动。
2,datasheet实在扯淡,对功能的描述含糊不清(比如REG2中的复位功能)。
3,读数非常离奇,寄存器的读取规则很多(这可能是我没有调试成功的关键)
更加生气的是,但我打算用网易博客写博,他竟然提示我创建博客成功,果不其然,我之前写的博客没了,SB网易!果断选择CSDN。
以下是对调试3110的一些心得,一方面加强自己的记忆,一方面可为来者师。(才疏学浅,见识尚浅,见谅)
1.IIC的通讯规则是先写器件地址(相当于喊人名字,3110的器件地址为0x1C,最低一位是读写指令位,0写1读),然后是寄存器地址,写的话后面加上一个字节得信息,读的话等待Ack接受一个字节。细节略(应答和起止见其他博客)
2.对于IIC的读取,若出现数据异常,可尝试增加延时,有时会有效果(有时而已)
3.对于寄存器中的数据,读出来就是补码形式的,不需要自己转化。(尤其注意,存储该类数据是不可使用无符号类型unsigned!!否则负数无法读出!)
4.可以使用“0b”前缀表示一个二进制数,比如0X0F可写成0b00001111(keil中可行,感觉C里面都可以,笑!)(现在的版本不可以了 2019.7.9)
代码(未实现效果,问题表现为读数异常)
#include "stm32f10x.h"
#include "delay.h"
#include "sys.h"
#include "timer.h"
#include "74H595.h"
#include "math.h"
#include "iic.h"
#include "mag3110.h"short mx,my,mz;
float d1=0,d2;
short num=0;
u8 xh,yh,zh,xl,yl,zl;u16 cnt1=1;
u16 cnt2=1;int main(void)
{ delay_init(); //延时函数初始化 res_Init(); //寄存器初始化ResDriver(0,40); //清空74HC595锁存while(MAG3110_Init()) //初始化地磁模块(内含写入REG2和REG1){ResDriver(0,num++);delay_ms(50);if (num>=36) num = 0;}MAG3110_Standby(); MAG_Write_Byte(CTRL_REG1, 0x00); MAG3110_Active();delay_us(2);delay_us(2);MAG3110_Standby();delay_ms(2); MAG_Write_Byte(CTRL_REG2, 0x10); MAG3110_Active();test2 = MAG_Read_Byte(CTRL_REG1);delay_ms(20);test3 = MAG_Read_Byte(WHO_AM_I_REG);delay_ms(20);while(cnt2++){ if (cnt2>0x7FFF) cnt2=1;delay_ms(20);if (MAG_Read_Byte(STATUS_00_REG)&ZYXDR_MASK){test4++;MAG3110_Standby();delay_ms(10);xh = MAG_Read_Byte(OUT_X_MSB_REG);delay_us(50);xl = MAG_Read_Byte(OUT_X_LSB_REG);mx = xh * 256 + xl+1331; //加数为修正值,下同delay_ms(10);yh = MAG_Read_Byte(OUT_Y_MSB_REG);delay_us(50);yl = MAG_Read_Byte(OUT_Y_LSB_REG);my = yh * 256 + yl+2142;delay_ms(10);zh = MAG_Read_Byte(OUT_Z_MSB_REG);delay_us(50);zl = MAG_Read_Byte(OUT_Z_LSB_REG);mz = zh * 256 + zl+2897;delay_ms(10);MAG3110_Active();}if (mz>=0){ d1 = atan2(mx,my);d2 = d1 + 3.14159;num = d2 / 3.14159 * 18;ResDriver(0,num);}else{ResDriver(1,0);}} }
可能是IIC通讯未加上拉电阻!!(爆锤自己,2019.1.21留)
调试MAG3110地磁传感器心得体会相关推荐
- 传感器实训心得体会_传感器心得体会
传感器心得体会 [篇一:传感器实验总结] <传感器及检测技术>教学实践工作总结 本学期,担任<传感器及检测技术>课程的理论和实践教学内容. 本课程的实践教学主要是教学实验,在全 ...
- 飞思卡尔地磁传感器MAG3110调试笔记
首先我们要了解这么一个基本概念:地磁传感器必须和重力传感器一起工作,指南针才可以正常工作. 一. 调试要点: 1. 重力传感器的3轴有方向性,地磁传感器的数据输出也有方向性.我们必须根据硬 ...
- 传感器实训心得体会_基于at89c52传感器实训报告总结
基于at89c52传感器实训报告总结 为了适应公司新战略的发展,保障停车场安保新项目的正常.顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划基于at89c52传感器实训报告总结九江学院信息科 ...
- 传感器实训心得体会_传感器实训心得体会
传感器实训心得体会 [篇一:传感器实训心得] 实训报告 在做测试技术的实验前 , 我以为不会难做 , 就像以前做物理实验一样 , 做完实验 , 然后两下子就将实验报告做完 . 直到做完测试实验后 , ...
- 博世传感器调试笔记(三)加速度及地磁传感器BMC156
一. 器件简介: 1. BMC 156是一款整合三轴地磁传感器与三轴(12bit)加速度传感器于一体的传感器,以BMC 150 电子罗盘模块为基础, 并与Bosch Sensortec 2 ...
- 传感器实训心得体会_生产线实习心得体会范文
生产实习是学生在生产现场以工人.技术员.管理员等身份,直接参与生产过程,使专业知识与生产实践相结合的教学形式.下面是由出国留学网小编为大家整理的"生产线实习心得体会",仅供参考,欢 ...
- 传感器实训心得体会_关于实训的心得体会
关于实训的心得体会 [1]总之,这次实习是有收获的,自己也有许多心得体会. 其次,作为企业的一员,无论是其他工作人员,还是会计人员,在进行自身相对循环重复的工作中,不仅应保持工作的质量及效率,还应具备 ...
- MMC5603地磁传感器调试日志
/******************************************************************************/ /*开发平台:Keil uVision ...
- 传感器实训心得体会_传感器实训心得体会.doc
第 1 页 / 共 7 页 传感器实训心得体会 篇一:传感器实训心得 实训报告 学了一学期的传感器实训心得体会 ) 传感器, 在最后期末的时候我们也 参加了传感器这一学科的实训,收获还是颇多. 在做测 ...
最新文章
- Golang内建库学习笔记(1)-sort和container
- asp.net 导出excel带图片
- [密码学] 因子分解
- 河南省计算机大学应用水平考试,河南省大学计算机等级考试选择题(文管二级)...
- python3精要(42)-异步生成器
- Fiddler 4设置代理后无法上网的问题解决办法(亲测有效)
- linux 系统监控、诊断工具之 IO wait
- HALCON示例程序train_characters_ocr.hdev使用SVM分类器训练字体
- 史上最神奇的公式,竟然藏着这么多秘密!
- [读书笔记]机器学习:实用案例解析(6)
- 4月第1周回顾:微软向雅虎发最后通牒 头号***伏法
- 关于静态成员变量的谈论
- 用typescript完成倒计时_TypeScript(一):类型
- SOA系列文章之(四):在Web服务中使用SOA
- 远程调试阿里云上的NodeJS Docker应用
- linux执行ksh文件,关于linux:KSH shell,它对目录中的文件行进行计数
- 两个蓝牙模块HC-05转TTL转USB上电自动配对配置过程详解
- 【计算机数学】二次规划(QP)问题
- 【龙芯1B】:有源蜂鸣器例程
- 图像特征提取与匹配——SIFT算法
热门文章
- 扫描二维码登录的过程?
- 软件质量测试大作业,软件质量管理大作业.ppt
- 已解决:极品飞车9 Most Wanted无故跳出回桌面问题
- 计算机学stata,Stata教程(免费)
- 计算机毕业设计ssm基于ssm的酒店管理系统设计与实现
- matlab 启动提示 缺少 “boost_date_time-vc120-mt-1_56.dll” 文件
- matlab 流固耦合,一种基于MATLAB-ANSYS软件的静压溜板流固耦合工作性能的计算方法与流程...
- 潍坊风尚米兰能耗监测系统的应用-安科瑞耿敏花
- Python图形界面开发框架常用的八款工具包
- 利用Python实现自动扫雷小脚本