智能车制作

标题: 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