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本身就是一個字節。
|