目录
一、写在前面
二、伪代码的逻辑实现
1、从高位到低位
2、从低位到高位
一、写在前面
在接收数据之前我们需要事先知道数据的发送规则,是高位先行还是低位先行,并按照规则接收数据,否则收到的数据很可能是错的
高位先行:先发数据位高的数据,
低位先行:先发数据位低的数据
从波形反推数据:高位先行波形从左往右看,数据从左往右写
从波形反推数据:低位先行波形从左往右看,数据从右往左写
二、伪代码的逻辑实现
1、从高位到低位
u8 Read_Byte()
{u8 tmp = 0x80; //1000 0000u8 Byte = 0;for( tmp = 0x80; tmp > 0; tmp >>= 1 ){if( Read_Bit() == 1 ) //读取1Bit数据 Byte |= tmp; elsedata &= ~tmp;}return Byte;
}
2、从低位到高位
u8 Read_Byte()
{u8 tmp = 0x01; //1000 0000u8 Byte = 0;for( tmp = 0x01; tmp < 0x80; tmp <<= 1 ){if( Read_Bit() == 1 ) //读取1Bit数据 Byte |= tmp;elseByte &= ~tmp;}return Byte;
}