注册会员
- 积分
- 136
- 威望
- 74
- 贡献
- 40
- 兑换币
- 38
- 注册时间
- 2015-11-15
- 在线时间
- 11 小时
- 毕业学校
- 河南理工大学
|
用山外的库mma7455改写的,但是不能输出结果,主要有以下几个问题:
1,从机地址,0x1c、0x1D、还有0x38,个人认为是0x1C,因为用表测过,SA0确实是接地的。但是这张图见有人讨论说是0x38,,,
2, 7455用的是7位的地址,而8451给的是8位的,不知道怎么处理
/******以下为山外i2c_read_reg部分代码*******/
//先写入寄存器地址,再读取数据,因此此过程是 I2C 的复合格式,改变数据方向时需要重新启动
uint8 result;
ASSERT((SlaveID & 0x80) == 0); //断言,我们要求的7位地址的值仅仅是7bit,不是通信时要求的高7位
//有些手册,给出的7位地址指的是8bit里的高7位
//有些手册,给出的7位地址指的是7bit
//请自行确认,可以尝试是否通信正常来确认
i2c_Start(i2cn); //发送启动信号
i2c_write_byte(i2cn, ( SlaveID << 1 ) | MWSR); //发送从机地址和写位
3,目前改完代码后程序运行到 i2c_write_byte(i2cn, reg);写寄存器就卡住了。可能是因为时序问题,或者8451需要其他设置?求大神帮忙
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|