注册 登录
查看: 345|回复: 1

KL26读不了MMA8451的数据,是硬件I2C的问题吗?

[复制链接]
发表于 2014-4-14 21:59:30 | 显示全部楼层 |阅读模式
为什么KL26读不了MMA8451的数据,用的是硬件I2c,为什么读回来的器件地址是0xff,不应该是0x1D吗,程序是照着以前的k60程序移植的。求指点啊!!!!!
uint8 MMA8451_Init(void)
{
  uint8 device_id;
  i2c_init(MMA8451_I2CX ,MMA8451_SCL_400KHZ);

  //读取设备ID
  device_id = MMA8451_ReadReg(MMA8451_REG_WHOAMI);
  //进行寄存器配置 ,默认2g,14位模式
  MMA8451_WriteReg(MMA8451_REG_SYSMOD, 0x00);       //默认模式Standby Mode
  for(int n=1;n<90;n++)   asm("nop");
  MMA8451_WriteReg(MMA8451_REG_CTRL_REG2, 0x02);    //High Resolution
  for(int n=1;n<90;n++)   asm("nop");
  MMA8451_WriteReg(MMA8451_REG_CTRL_REG1, 0x01);    //主动模式,800HZ

  return device_id;
}

/*

*   该函数用于配置MMA8451的寄存器
*
*   参数:
*   RegisterAddress
*    |__ MMA8451寄存器地址
*   Data
*    |__ 具体写入的字节型数据
*/
void MMA8451_WriteReg(uint8 RegisterAddress, uint8 Data)
{  
  i2c_write_reg(MMA8451_I2CX, MMA8451_DEV_ADDR,RegisterAddress,Data);
}

uint8 MMA8451_ReadReg(uint8 RegisterAddress)
{
return   i2c_read_reg(MMA8451_I2CX, MMA8451_DEV_ADDR, RegisterAddress);
}





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-4-15 08:39:54 来自手机 | 显示全部楼层
试试用示波器测测波形。
回复 支持 反对

使用道具 举报

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

本版积分规则

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