百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

3个字让你记住单片机的大小端模式

liuian 2025-09-21 18:40 23 浏览

今天,我们来讲解一下单片机的大小端模式,目录如下:


1、什么是大小端?

2、怎么区分大端模式和小端模式?

3、如何判断单片机的大小端模式?

4、大端模式与小端模式怎么转换?

5、STM32是大端还是小端模式?



一、什么是大小端?


我们常常提到的大小端,其英文名字为“endianness”,直译过来就是“字节序”的意思,是内存中存储数据的字节顺序(注意:一定要记住是“字节的顺序”,因为在计算机系统中都是以字节为单位的,每个地址单元都对应一个字节,即8bit)。


在C语言系统中,除了8bit的char类型,还有16bit的short类型、32bit的long类型。对于超过8bit的数据的存储,必然存在存在如何将多个字节排序的问题,因此就导致了大端存储模式和小端存储模式。


如果系统是大端,则首先存储 MSB 字节,即高字节存储在低地址;若系统是小端,则首先存储LSB字节,即低字节存储在低地址。


针对这两种模式,我常用的记忆方法是“小弟弟”,即小端系统的低字节存储到低地址,大端则反之。

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。

点击这里找小助理0元领取:加微信领取资料




二、详解大小端模式


假设,需要存储的32bit的数据为:0x11223344。



对于大端模式:低位地址存储着高字节的数据。



对于小端系统:低位地址存储着低字节的数据。



在一些MCU中,可以通过软件将一种字节序切换为另一种字节序,即可以通过软件配置的形式选择大端模式还是小端模式。


如笔者使用过的一款瑞萨单片机支持字节序选择。




三、如何判断大小端模式?


若想要知道自己使用的单片机是大端或小端模式,可以通过下方的代码进行判断。


//检查大小端模式,大端模式返回true;小端模式返回false
bool 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;
    }
}



四、大端模式与小端模式怎么转换?


我们可以使用 下面的算法将大端模式转换为小端模式,反之亦然。


//Function to change one endian to another
uint32_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是大端还是小端模式?


如下图所示,从STM32手册介绍中可以发现,我们常用的STM32单片机符合“小弟弟”的存储逻辑,属于小端系统。




原文链接:
https://mp.weixin.qq.com/s/qzPqsZ4iiElmZFW1wpnyjQ

转载自:嵌入式微处理器

原文链接:3个字让你记住单片机的大小端模式

本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

相关推荐

如何设置自动关机win10(windows 10如何设置自动关机)

Win10设置自动关机,需要以下步骤:1.按“Win+R”组合键,呼出“运行”;2.将定时关机命令设置为“shutdown-s-t7200”;3.在“运行”内输入命令,点击“确定”即可;4.如果设置错...

公版驱动(公版驱动和专用驱动的区别)

公版这个名词特指显卡本身,与驱动无关。一般采用芯片制造商自己设计的显卡,称为公版。显卡驱动只有WHQL版本、Beta版本、兼容版、定制版之分。兼容版一般称为万能驱动,不会给显卡带来多少优化,只是让你能...

nod32是什么软件(nod32是哪个国家的)

起源于捷克斯洛伐克总部现在美国下面是nod32的由来:nod是根据一部电视剧(城市边缘的医院)起的,原意是“磁盘边的医院”32是源于当16-bitNOD-ICE很成熟的时候32位处理器出来了升级适应3...

欧拉linux系统官网(欧拉系统命令)

在华为欧拉服务器上配置Linux网络,首先需要编辑网络配置文件,位于/etc/sysconfig/network-scripts目录下,根据网络需求配置对应的网络接口,IP地址、子网掩码、网关等信息,...

笔记本摄像头无法打开(笔记本的摄像头打不开了)
  • 笔记本摄像头无法打开(笔记本的摄像头打不开了)
  • 笔记本摄像头无法打开(笔记本的摄像头打不开了)
  • 笔记本摄像头无法打开(笔记本的摄像头打不开了)
  • 笔记本摄像头无法打开(笔记本的摄像头打不开了)
deepin安装显卡驱动(deepin安装显卡驱动后无法进入图形界面)

1、首先必须使用rufus制作U盘启动,必须选择DD格式2、从其他linux镜像比如Ubantu或其他拷贝出EFI的引导文件,具体是镜像中的EFI—boot—grubx86.efi这个文件,把这个文件...

小米路由器管理员初始密码(miwifi小米路由器管理员初始密码)

小米路由器管理员密码初始是123456。1、小米路由器的管理员初始密码是admin。2、如果输入admin路由器没有反应,说明密码错误,可以查看路由器背面的管理员登录密码,登录后可以自行修改设置账户名...

路由器组网具体连接方法(路由器组网教程)

举例:你正在用一个TP-LINK的无线路由器上网,信号不是太好,你想在下边再连一个无线路由器的话,就得在第二个路由器上设置了,先不管第一个路由器,设置步骤:把第二个无线路由器连接到电脑上(只是路...

雨林木风win7纯净版gho(雨林木风win7官网)

雨林木风WIN7光盘重装系统的步骤是将光盘放入光驱内,设置光驱为第一启动盘,打开电脑后进入光盘引导,最后将系统文件镜像到系统盘上1.你下载的雨林木风GHOSTXPSP3纯净版Y8.0是一个克隆光...

电脑一直正在重新启动怎么解决

1、电脑误删除或者是破坏了系统文件。那么需要重新安装系统。2、可能是安装的软件或者是插件跟系统兼容性冲突导致的。可以强制关机3次,然后重新启动电脑会出现恢复界面——选择安全模式——然后电脑会重新启...

如何下载ps软件免费版(ps如何下载免费版本)
如何下载ps软件免费版(ps如何下载免费版本)

1.在搜索引擎中输入adobe并点击搜索。2.点击adobe官网。3.点击支持并点击下载与安装。4.点击开始免费试用并点击下载。5.打开文件夹并点击打开进行安装即可。6.根据以上步骤即可下载安装ps。AdobePhotoshopCS6号...

2026-01-14 05:37 liuian

怎么判断该换硅脂了(cpu硅脂干了影响真的很大吗)

方法步骤如下第一,从系统软件的运行上来看,如果在运行某些大型软件,容易导致显卡发热的程序时,出现画面掉帧,或卡顿,甚至是画面卡死等情况,这大多是因为显卡散热出现问题,导致显卡自动降频,以降低功耗来减少...

壁纸图片2025最新款(电脑桌面壁纸图片2025最新款)

要更换2023最新款壁纸图片,可以按照以下步骤操作:首先,找到您想要更换的壁纸图片并下载到您的设备上。其次,进入您的设备设置,找到“壁纸”或“桌面壁纸”选项,并点击进入。然后,选择“更换壁纸”并在相册...

清理垃圾的神器(清理垃圾的神器是什么)

1、《腾讯手机管家》这款可以帮助用户进行强力的清理,加速告别空间卡顿,缓慢延迟的问题的软件当中,用户可以随时随地登录软件进行自动清理和自动清理,自动清理包括图片,视频,语音文件在内的各种换成文件,为手...

苹果笔记本怎样重装系统(苹果笔记本怎样重装系统还原)

苹果笔记本电脑系统可以通过以下步骤进行重装:1.备份数据:在开始重装前,需要备份你的重要数据。你可以将数据存储到外部硬盘、云存储或其他可靠的设备中。2.下载安装器:从AppStore中下载macOS...