LIS3DH寄存器配置and调试记录

LIS3DH寄存器配置and调试记录

最近两周做一个LIS3DH+国产蓝牙芯片(FR8016)计步功能项目,LIS3DH调试过程中出现了很多坑,亲测可用在此记录,也供大家参考。
1.寄存器件配置:
使用的I2C方式通信,读地址0x33,写地址0x32.具体配置的寄存器:

{
 unsigned char Re;
 uint8_t temp = 0;
 co_delay_100us(2000);//ÑÓʱһ¶Îʱ¼ä
 //lis3dhReadID();
 
  if(!lis3dhReadID())
   return false;
 temp = 0x47;
 if(!maxim_lis3dh_write_reg(LIS3DSH_CTRL_REG1,temp)) //10hz
  return false;
  temp = 0x09;//0x39;//0x3d;
 if(!maxim_lis3dh_write_reg(LIS3DSH_CTRL_REG2, temp))//´ÓÄÚ²¿Â˲¨Æ÷·¢Ë͵½Êä³ö¼Ä´æÆ÷ºÍFIFOµÄÊý¾Ý
  return false;
 temp = 0x40;
 if(!maxim_lis3dh_write_reg(LIS3DSH_CTRL_REG3, temp)) 
  return false;
 temp = 0x08;//0x09;
 if(!maxim_lis3dh_write_reg(LIS3DSH_CTRL_REG4, temp))  
  return false;
 temp = 0x08;//0x00;
 if(!maxim_lis3dh_write_reg(LIS3DSH_CTRL_REG5, temp))  
  return false;
 temp = 0x00;
  if(!maxim_lis3dh_write_reg(LIS3DSH_CTRL_REG6, temp))  
  return false;
 temp = 0x02;
  if(!maxim_lis3dh_write_reg(LIS3DSH_INT1_THS, temp))  
  return false;
 temp = 0x00;//0x02;
  if(!maxim_lis3dh_write_reg(LIS3DSH_INT1_DURATION, temp))  
  return false;
 temp = 0x5a;//0xaa;
  if(!maxim_lis3dh_write_reg(LIS3DSH_INT1_CFG, temp)) //15 
  return false;
 maxim_lis3dh_read_reg(LIS3DSH_REFERENCE,&Re);//Ðé¶Á
 maxim_lis3dh_read_reg(LIS3DSH_INT1_SRC,&Re);//Çå³ýÖжÏÐźÅ
  printf("Ç¿Öƽ«¸ßͨÂ˲¨Æ÷µÄÖµ¼ÓÔص½µ±Ç°¼ÓËÙ¶ÈÖµ£º%d\r\n",Re);
 co_delay_100us(1000);//ÑÓʱһ¶Îʱ¼ä
 return true; 
}

配置寄存器前先读取一下lis3dh设备ID来确定I2C是否可以正常通信:lis3dh的ID为51(也就是0x33),如果读出来为0有两种可能:1)I2C通信没通 ,这个需要软硬联调,使用示波器看一下I2C的信号线的信号是否正常。2)I2C通了,但是读取前没先进行写操作,lis3dh读取寄存器时需要先写信号操作再读取信号操作。

uint8_t lis3dhReadID(void)
{
 unsigned char Re;
   maxim_lis3dh_read_reg(ADD_REG_WHO_AM_I,&Re);
 
   if (Re != 0x33) {
   printf("¼ì²â²»lis3dhÄ£¿é£¬Çë¼ì²éÄ£¿éÓ뿪·¢°åµÄ½ÓÏß");
   printf("lis3dh ID = %d\r\n",Re);
   return 0;
   } 
  else {
   printf("¼ì²âµ½lis3dhÄ£¿élis3dh ID = %d\r\n",Re);
   return 1;
   }
    
}

2.I2C通信写操作需要按照数据手册写的时序发送字节,我就是因为没发出去所以一直没有中断产生。
3.注意你的芯片是lis3dh还是lis3dsh,两个芯片的配置是有区别的,我使用的lis3dh芯片。
4.每次产生中断后,因为配置的寄存器5是锁存寄存器,读取x,y,z轴信息后,中断才会消失.

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值