MSB是最高有效位,LSB是最低有效位。我们用单片机和传感器通信的时候,就需要留意这个。比如单片机和温度传感器DS18B20通信,通过查询DS18B20的datasheet,可以知道DS1820是以LSB模式传输,即先发送最低位,次低位....到最高位。所以单片机每次接收数据,要采用字节位移的思路,接收一个bit,字节位移一次,直到全部接收完,数据就能在正常的位置。 单片机存储数据,有分大端存储和小端存储。所谓大端,就是数据的高位字节存放在物理地址的低端,低字节放在物理地址的高端。小端,就是和大端反过来的。 假设uint_16 temp = 0x12345678;存储在0x00001-0x00004的物理地址空间中,存储都是按照从最低的物理地址开始存储的,即从0x00001开始存入数据;对于大端,0x12345678是从12开始存入,然后34、56、78,从MSB作为第一个开始,从左到右。对于小端,0x12345678是从78开始存入,然后56、34、12,从LSB第一个开始,从右到左。 有些人有疑问,比如小端怎么不是存入0x87而是0x78呢?这个问题,需要了解物理地址存储,每个物理地址可以存储一个byte,所以是按照0x78存入的,因为0x78本身就是一个字节。
|