智能车制作
标题:
mma8451,新人求教
[打印本页]
作者:
木木杜
时间:
2015-11-28 00:09
标题:
mma8451,新人求教
用山外的库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需要其他设置?求大神帮忙
作者:
yinhuipeng
时间:
2015-11-28 01:46
数字好用吗
作者:
木木杜
时间:
2015-11-28 02:03
并不会用,,,,
作者:
helium133135412
时间:
2015-11-28 09:04
用模拟I2C
作者:
zhou1994
时间:
2015-11-28 16:17
如果你是买的那个模块。地址就是0x1c。我去年也用了。没问题的。之所以会卡死。是因为你的函数最后没有延时。有个i2c函数的功能是:读取I2C设备指定地址寄存器的数据,在这个函数末尾的返回函数之前,加一个延时 大概20个空指令的样子。然后再返回数据结果
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2