智能车制作

标题: 求救求救,mma8451加速度计读到的数据全是ff怎么破 [打印本页]

作者: Z156102    时间: 2015-7-29 14:17
标题: 求救求救,mma8451加速度计读到的数据全是ff怎么破
源程序附上
void IIC_Start(void)
{
        SCL = 0;
        SDA = 1;
        ;
        SCL = 1;
        nops();
        SDA = 0;
        nops();
        SCL = 0;
}

void IIC_Stop(void)
{
        SCL = 0;
        ;
        SDA = 0;
        ;
        SCL = 1;
        nops();
        SDA = 1;
        nops();
        SCL = 0;
}

void Write_Byte(unsigned char SendChar)
{
        unsigned char i;
        for(i = 0;i < 8;i++)
        {
                SCL = 0;
                if((SendChar<<i)&0x80)
                        SDA = 1;
                else
                        SDA = 1;
                ;
                SCL = 1;
                nops();
                SCL = 0;
        }
        nops();
        SDA = 1;
        ;
        SCL = 1;
        nops();
        SCL = 0;
}

unsigned char Read_Byte(void)
{
        unsigned char i;
        unsigned char ReadChar = 0;
        SCL = 0;
        ;
        SDA = 1;
        for(i = 0;i < 8;i++)
        {
                ;
                SCL = 0;
                nops();
                SCL = 1;
                ;
                ReadChar <<= 1;
                ReadChar += 1;
        }
        SCL = 0;
        return ReadChar;
}

void MMA8451_Write_Byte(unsigned char Address, unsigned char Thedata)
{
        IIC_Start();
        Write_Byte(0x38);
        Write_Byte(Address);
        Write_Byte(Thedata);
        IIC_Stop();
}

unsigned char MMA8451_Read_Byte(unsigned char Address)
{
        unsigned char Ret = 100;
        IIC_Start();                                  //启动
        Write_Byte(0x38);                        //写入设备ID及写信号
        Write_Byte(Address);                      //X地址
        IIC_Start();                                  //重新发送开始
        Write_Byte(0x39);                        //写入设备ID及读信
        Ret=Read_Byte();                        //读取一字节
        IIC_Stop();
        return Ret;
}

void MMA8451_Init(void)
{       
        MMA8451_Write_Byte(0x2A,0x04);       
        nops();  nops();  nops();  
        nops();  nops();  nops();
        MMA8451_Write_Byte(0x0E,0x00);     //2G
        nops();  nops();  nops();  
        nops();  nops();  nops();
        MMA8451_Write_Byte(0x2A,0x01);     //激活状态
        nops();  nops();  nops();  
        nops();  nops();  nops();
}

这是读取数据
        x_h=MMA8451_Read_Byte(0x01);                // 读取高位   
        x_l=MMA8451_Read_Byte(0x02);                // 读取低位  
        x=((x_h<<8)+x_l)>>2;                                // 14位精度

        y_h=MMA8451_Read_Byte(0x03);                // 读取高位   
        y_l=MMA8451_Read_Byte(0x04);                // 读取低位  
        y=((y_h<<8)+y_l)>>2;                                // 14位精度
       
        z_h=MMA8451_Read_Byte(0x05);                // 读取高位   
        z_l=MMA8451_Read_Byte(0x06);                // 读取低位  
        z=((z_h<<8)+z_l)>>2;                                // 14位精度


作者: yuangenji    时间: 2015-7-29 14:17
楼主,我要积分
作者: Z156102    时间: 2015-7-29 14:17
快快来人啊,送钱的没人要么
作者: Z156102    时间: 2015-7-29 14:51
求助攻啊
作者: Z156102    时间: 2015-7-29 18:00
求大神解救啊
作者: Z156102    时间: 2015-7-29 18:00
求大神解救啊
作者: xhx331153066    时间: 2015-7-30 12:40
这么长的程序很少有人愿意看的,愿意看的又很难恰好懂,钱财乃身外之物
建议程序问题还是自己慢慢解决比较好
作者: Z156102    时间: 2015-7-31 15:59
xhx331153066 发表于 2015-7-30 12:40
这么长的程序很少有人愿意看的,愿意看的又很难恰好懂,钱财乃身外之物
建议程序问题还是自己慢慢解决 ...

解决了,果然不是熟人都没人帮

作者: Z156102    时间: 2015-8-1 12:59
yuangenji 发表于 2015-8-1 12:59
楼主,我要积分

就冲这头像就给你了





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2