说是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;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>