MSB是最高有效位,LSB是最低有效位。我們用單片機和傳感器通信的時候,就需要留意這個。比如單片機和溫度傳感器DS18B20通信,通過查詢DS18B20的datasheet,可以知道DS1820是以LSB模式傳輸,即先發(fā)送最低位,次低位....到最高位。所以單片機每次接收數(shù)據(jù),要采用字節(jié)位移的思路,接收一個bit,字節(jié)位移一次,直到全部接收完,數(shù)據(jù)就能在正常的位置。 單片機存儲數(shù)據(jù),有分大端存儲和小端存儲。所謂大端,就是數(shù)據(jù)的高位字節(jié)存放在物理地址的低端,低字節(jié)放在物理地址的高端。小端,就是和大端反過來的。 假設(shè)uint_16 temp = 0x12345678;存儲在0x00001-0x00004的物理地址空間中,存儲都是按照從最低的物理地址開始存儲的,即從0x00001開始存入數(shù)據(jù);對于大端,0x12345678是從12開始存入,然后34、56、78,從MSB作為第一個開始,從左到右。對于小端,0x12345678是從78開始存入,然后56、34、12,從LSB第一個開始,從右到左。 有些人有疑問,比如小端怎么不是存入0x87而是0x78呢?這個問題,需要了解物理地址存儲,每個物理地址可以存儲一個byte,所以是按照0x78存入的,因為0x78本身就是一個字節(jié)。
|