求助这段IIC 代码是什么意思呀

2019-08-23 15:56发布

说是I,IC单字节多位改变,但是看的不是很懂

u8 GY86_bitschange(u8 ADDR, u8 reg,u8 bitStart,u8 length,u8 data)
{

    u8 buffer[1],b;
    if (GY86_Read_Byte(ADDR,reg,1,buffer) == 0) {
        u8 mask = (0xFF << (bitStart + 1)) | 0xFF >> ((8 - bitStart) + length - 1);
        data <<= (8 - length);
        data >>= (7 - bitStart);
        b &= mask;
        b |= data;
        return GY86_Write_shortByte(ADDR, reg, b);
    } else {
        return 1;
    }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。