可能是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地磁传感器心得体会相关推荐

  1. 传感器实训心得体会_传感器心得体会

    传感器心得体会 [篇一:传感器实验总结] <传感器及检测技术>教学实践工作总结 本学期,担任<传感器及检测技术>课程的理论和实践教学内容. 本课程的实践教学主要是教学实验,在全 ...

  2. 飞思卡尔地磁传感器MAG3110调试笔记

    首先我们要了解这么一个基本概念:地磁传感器必须和重力传感器一起工作,指南针才可以正常工作. 一.    调试要点: 1.    重力传感器的3轴有方向性,地磁传感器的数据输出也有方向性.我们必须根据硬 ...

  3. 传感器实训心得体会_基于at89c52传感器实训报告总结

    基于at89c52传感器实训报告总结 为了适应公司新战略的发展,保障停车场安保新项目的正常.顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划基于at89c52传感器实训报告总结九江学院信息科 ...

  4. 传感器实训心得体会_传感器实训心得体会

    传感器实训心得体会 [篇一:传感器实训心得] 实训报告 在做测试技术的实验前 , 我以为不会难做 , 就像以前做物理实验一样 , 做完实验 , 然后两下子就将实验报告做完 . 直到做完测试实验后 , ...

  5. 博世传感器调试笔记(三)加速度及地磁传感器BMC156

    一.    器件简介: 1.    BMC 156是一款整合三轴地磁传感器与三轴(12bit)加速度传感器于一体的传感器,以BMC 150 电子罗盘模块为基础, 并与Bosch Sensortec 2 ...

  6. 传感器实训心得体会_生产线实习心得体会范文

    生产实习是学生在生产现场以工人.技术员.管理员等身份,直接参与生产过程,使专业知识与生产实践相结合的教学形式.下面是由出国留学网小编为大家整理的"生产线实习心得体会",仅供参考,欢 ...

  7. 传感器实训心得体会_关于实训的心得体会

    关于实训的心得体会 [1]总之,这次实习是有收获的,自己也有许多心得体会. 其次,作为企业的一员,无论是其他工作人员,还是会计人员,在进行自身相对循环重复的工作中,不仅应保持工作的质量及效率,还应具备 ...

  8. MMC5603地磁传感器调试日志

    /******************************************************************************/ /*开发平台:Keil uVision ...

  9. 传感器实训心得体会_传感器实训心得体会.doc

    第 1 页 / 共 7 页 传感器实训心得体会 篇一:传感器实训心得 实训报告 学了一学期的传感器实训心得体会 ) 传感器, 在最后期末的时候我们也 参加了传感器这一学科的实训,收获还是颇多. 在做测 ...

最新文章

  1. Golang内建库学习笔记(1)-sort和container
  2. asp.net 导出excel带图片
  3. [密码学] 因子分解
  4. 河南省计算机大学应用水平考试,河南省大学计算机等级考试选择题(文管二级)...
  5. python3精要(42)-异步生成器
  6. Fiddler 4设置代理后无法上网的问题解决办法(亲测有效)
  7. linux 系统监控、诊断工具之 IO wait
  8. HALCON示例程序train_characters_ocr.hdev使用SVM分类器训练字体
  9. 史上最神奇的公式,竟然藏着这么多秘密!
  10. [读书笔记]机器学习:实用案例解析(6)
  11. 4月第1周回顾:微软向雅虎发最后通牒 头号***伏法
  12. 关于静态成员变量的谈论
  13. 用typescript完成倒计时_TypeScript(一):类型
  14. SOA系列文章之(四):在Web服务中使用SOA
  15. 远程调试阿里云上的NodeJS Docker应用
  16. linux执行ksh文件,关于linux:KSH shell,它对目录中的文件行进行计数
  17. 两个蓝牙模块HC-05转TTL转USB上电自动配对配置过程详解
  18. 【计算机数学】二次规划(QP)问题
  19. 【龙芯1B】:有源蜂鸣器例程
  20. 图像特征提取与匹配——SIFT算法

热门文章

  1. 扫描二维码登录的过程?
  2. 软件质量测试大作业,软件质量管理大作业.ppt
  3. 已解决:极品飞车9 Most Wanted无故跳出回桌面问题
  4. 计算机学stata,Stata教程(免费)
  5. 计算机毕业设计ssm基于ssm的酒店管理系统设计与实现
  6. matlab 启动提示 缺少 “boost_date_time-vc120-mt-1_56.dll” 文件
  7. matlab 流固耦合,一种基于MATLAB-ANSYS软件的静压溜板流固耦合工作性能的计算方法与流程...
  8. 潍坊风尚米兰能耗监测系统的应用-安科瑞耿敏花
  9. Python图形界面开发框架常用的八款工具包
  10. 利用Python实现自动扫雷小脚本