chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文詳細(xì)了解單片機(jī)的大小端模式

GReq_mcu168 ? 來源:玩轉(zhuǎn)單片機(jī)與嵌入式 ? 作者:玩轉(zhuǎn)單片機(jī)與嵌入 ? 2022-02-16 17:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一:什么是大小端?

咱們中文中常常提到的大小端的英文名字為“endianness”,英文直譯的意思是“字節(jié)序”,是內(nèi)存中存儲數(shù)據(jù)的字節(jié)順序。在這里一定要記住是“字節(jié)的順序”,應(yīng)為在計算機(jī)系統(tǒng)中,都是以字節(jié)為單位的,每個地址單元都對應(yīng)一個字節(jié),即8bit。

C語言系統(tǒng)中,除了8bit的char類型,還有16bit的short類型、32bit的long類型。對于超過8bit的數(shù)據(jù)的存儲,必然存在存在如何將多個字節(jié)排序的問題,因此就導(dǎo)致了大端存儲模式和小端存儲模式。

如果系統(tǒng)是大端,則首先存儲 MSB 字節(jié),即高字節(jié)存儲在低地址;若系統(tǒng)是小端,則首先存儲LSB字節(jié),即低字節(jié)存儲在低地址。

針對這兩種模式,我常用的記憶宮殿方法是:“小弟弟”,即小端系統(tǒng)的低字節(jié)存儲到低地址,大端則反之。

二:詳解大小端模式

假設(shè),需要存儲的32bit的數(shù)據(jù)為:0x11223344。

一文詳細(xì)了解單片機(jī)的大小端模式

對于大端模式:低位地址存儲著高字節(jié)的數(shù)據(jù)。

一文詳細(xì)了解單片機(jī)的大小端模式

對于小端系統(tǒng):低位地址存儲著低字節(jié)的數(shù)據(jù)。

一文詳細(xì)了解單片機(jī)的大小端模式

在一些MCU中,可以通過軟件將一種字節(jié)序切換為另一種字節(jié)序,即可以通過軟件配置的形式選擇大端模式還是小端模式。

如筆者使用過的一款瑞薩單片機(jī)支持字節(jié)序選擇。

一文詳細(xì)了解單片機(jī)的大小端模式

三:如何判斷單片機(jī)的大小端模式?

若想要知道自己使用的單片機(jī)是大端或小端模式,可以通過下方的代碼進(jìn)行判斷。

//檢查大小端模式,大端模式返回true;小端模式返回falsebool CheckisBigEndian(void){    uint32_t u32RawData;    uint8_t *pu8CheckData;    u32RawData = 0x11223344; //Assign data    pu8CheckData = (uint8_t *)&u32RawData; //Type cast    if (*pu8CheckData == 0x44) //check the value of lower address    {        return false;    }    else if (*pu8CheckData == 0x11) //check the value of lower address    {        return true;}}

四:大端模式與小端模式怎么轉(zhuǎn)換?

我們可以使用 下面的算法將大端模式轉(zhuǎn)換為小端模式,反之亦然。

//Function to change one endian to anotheruint32_t ChangeEndianness(uint32_t u32Value){    uint32_t u32Result = 0;    u32Result |= (u32Value & 0x000000FF) << 24;    u32Result |= (u32Value & 0x0000FF00) << 8;    u32Result |= (u32Value & 0x00FF0000) >> 8;    u32Result |= (u32Value & 0xFF000000) >> 24;    return u32Result;}

五:STM32是大端還是小端模式?

從下圖中關(guān)于STM32的手冊介紹中可發(fā)現(xiàn):我們常用的STM32單片機(jī)符合“小弟弟”的存儲邏輯,屬于小端系統(tǒng);

一文詳細(xì)了解單片機(jī)的大小端模式

原文標(biāo)題:超全面講解單片機(jī)的大小端模式

文章出處:【微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6067

    文章

    44992

    瀏覽量

    650657
  • 計算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7663

    瀏覽量

    90834
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141822

原文標(biāo)題:超全面講解單片機(jī)的大小端模式

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    單片機(jī)Debug工具性能對比 單片機(jī)調(diào)試常用命令

    單片機(jī)(Microcontroller Unit, MCU)調(diào)試是嵌入式開發(fā)中的個重要環(huán)節(jié),它幫助開發(fā)者發(fā)現(xiàn)和修復(fù)代碼中的錯誤,優(yōu)化程序性能。不同的單片機(jī)和開發(fā)環(huán)境可能使用不同的調(diào)試工具和命令
    的頭像 發(fā)表于 12-19 09:56 ?1426次閱讀

    如何優(yōu)化單片機(jī)項目的功耗

    功耗低的單片機(jī)是優(yōu)化功耗的第步。不同的單片機(jī)在工作模式下有不同的功耗表現(xiàn),包括活動模式、睡眠模式
    的頭像 發(fā)表于 11-01 14:16 ?1298次閱讀

    基于51單片機(jī)的多模式音樂跑馬燈

    ,音樂至少有3首,并可以對其進(jìn)行切換。 設(shè)計介紹 51單片機(jī)簡介 51單片種低功耗、高性能CMOS-8位微控制器,擁有靈巧的8位CPU和可編程Flash,使得51單片機(jī)為眾多嵌入式
    的頭像 發(fā)表于 10-22 14:10 ?1071次閱讀
    基于51<b class='flag-5'>單片機(jī)</b>的多<b class='flag-5'>模式</b>音樂跑馬燈

    如何實現(xiàn)51單片機(jī)與PC機(jī)的串行通信

    詳細(xì)步驟和方法。 硬件連接 首先,我們需要將51單片機(jī)與PC機(jī)的串行接口連接起來。通常,我們使用RS-232接口進(jìn)行連接。RS-232接口是種常用的串行通信接口,它使用9個引腳進(jìn)行
    的頭像 發(fā)表于 10-21 11:35 ?2677次閱讀

    單片機(jī)不工作的原因

    單片機(jī)不工作是個復(fù)雜的問題,可能涉及多個方面的因素。以下是對單片機(jī)不工作原因的詳細(xì)分析,旨在幫助技術(shù)人員或愛好者更好地理解和解決這問題。
    的頭像 發(fā)表于 10-17 18:11 ?3769次閱讀

    單片機(jī)的中斷機(jī)制

    單片機(jī)的中斷機(jī)制是種重要的處理方式,它允許單片機(jī)在執(zhí)行主程序的過程中,能夠暫停當(dāng)前任務(wù),轉(zhuǎn)而處理外部或內(nèi)部緊急事件。這種機(jī)制極大地提高了系統(tǒng)的響應(yīng)速度和處理能力,使得單片機(jī)在各種應(yīng)用
    的頭像 發(fā)表于 10-17 18:03 ?1983次閱讀

    單片機(jī)出現(xiàn)故障怎么維修

    單片機(jī)出現(xiàn)故障時,維修過程需要系統(tǒng)地檢查和診斷,以確定故障的根本原因,并采取相應(yīng)的修復(fù)措施。以下是詳細(xì)單片機(jī)維修指南,旨在幫助技術(shù)人員或愛好者有效地解決
    的頭像 發(fā)表于 10-17 17:57 ?3662次閱讀

    單片機(jī)異常復(fù)位的原因

    單片機(jī)異常復(fù)位是指單片機(jī)在正常工作過程中,非預(yù)期地返回到初始狀態(tài)或重啟。這種異常復(fù)位現(xiàn)象可能由多種因素引起,以下是對單片機(jī)異常復(fù)位原因的詳細(xì)分析:
    的頭像 發(fā)表于 10-17 17:56 ?3120次閱讀

    單片機(jī)基本io功能調(diào)試過程

    單片機(jī)基本IO功能的調(diào)試過程涉及多個步驟,旨在確保IO口能夠正確地執(zhí)行輸入和輸出操作。以下是個調(diào)試過程,涵蓋了從準(zhǔn)備階段到實際測試的關(guān)鍵步驟: 、準(zhǔn)備階段 確定單片機(jī)型號和IO口
    的頭像 發(fā)表于 09-14 14:38 ?1489次閱讀

    單片機(jī)io口怎么配置成輸出口

    單片機(jī)IO口配置成輸出口的過程通常涉及對單片機(jī)內(nèi)部寄存器的操作。不同型號的單片機(jī)在寄存器配置和編程方式上可能有所不同,但基本原理是相似的。以下是個通用的步驟,用于將
    的頭像 發(fā)表于 09-14 14:33 ?1601次閱讀

    單片機(jī)io口輸出電流多大

    單片機(jī)IO口的輸出電流大小會受到多種因素的影響,包括單片機(jī)的型號、IO口的配置模式以及外部電路的設(shè)計等。以下是對單片機(jī)IO口輸出電流的
    的頭像 發(fā)表于 09-14 14:29 ?4325次閱讀

    單片機(jī)燒錄程序的基本步驟是什么

    單片機(jī)燒錄程序是單片機(jī)開發(fā)過程中非常重要的步,它涉及到將編寫好的程序代碼通過定的方式傳輸?shù)?b class='flag-5'>單片機(jī)內(nèi)部的存儲器中,使
    的頭像 發(fā)表于 09-02 09:47 ?2781次閱讀

    單片機(jī)boot0和boot1怎么設(shè)置

    單片機(jī)Boot0和Boot1簡介 Boot0和Boot1是單片機(jī)啟動模式選擇引腳,用于選擇單片機(jī)的啟動模式。 Boot0和Boot1的設(shè)置方
    的頭像 發(fā)表于 08-22 09:50 ?5798次閱讀

    讀懂什么單片機(jī):組成結(jié)構(gòu)與應(yīng)用

    歡迎來到單片機(jī)的世界,這是種微小(但功能強大)的設(shè)備,改變了嵌入式系統(tǒng)的面貌。在本文中,您將了解單片機(jī)些基本知識、
    的頭像 發(fā)表于 08-09 11:49 ?2414次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>讀懂什么<b class='flag-5'>單片機(jī)</b>:組成結(jié)構(gòu)與應(yīng)用

    藍(lán)牙模塊如何實現(xiàn)單片機(jī)和手機(jī)數(shù)據(jù)互傳

    藍(lán)牙模塊實現(xiàn)單片機(jī)和手機(jī)數(shù)據(jù)互傳的過程可以分為以下幾個步驟: 硬件準(zhǔn)備 : 確保你有個支持藍(lán)牙通信的單片機(jī)開發(fā)板,如Arduino、Raspberry Pi等。 準(zhǔn)備
    的頭像 發(fā)表于 07-24 17:59 ?5645次閱讀
    藍(lán)牙模塊如何實現(xiàn)<b class='flag-5'>單片機(jī)</b>和手機(jī)<b class='flag-5'>端</b>數(shù)據(jù)互傳