前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >判断处理器是大端还是小端_网络字节序是大端还是小端

判断处理器是大端还是小端_网络字节序是大端还是小端

作者头像
全栈程序员站长
发布2022-09-27 10:43:59
6220
发布2022-09-27 10:43:59
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君

最近用杰理AC6966B调试博通的BK9527 U段发射芯片,一直没调通,经过测试IIC通讯是通,硬件还是好的,但是怎么都调不到与接收端成功连接。

最后咨询原厂得知提供的demo代码是大端编码模式的MCU代码,如果是小端模式,在部分写寄存器操作的过程中,如果直接传指针数据会反掉。

杰理的MCU应该是小端模式,平时写代码用memcpy函数操作指针赋值最后得到的结果都是低位在前。

为了进一步验证,网上找了一段代码验证,原理跟memcpy给指针赋值是类似的,最后成功验证到杰理的AC,AD系列都是小端模式:

代码语言:javascript
复制
typedef enum
{
	LITTLE_ENDIAN,
	BIG_ENDIAN,	
}DISTINGUISH_ENDIAN;

unsigned char little_or_big_endian(void)
{
	int test_int = 0x1234;

	return  ( *((char *)&test_int ) == 0x34 ) ? LITTLE_ENDIAN : BIG_ENDIAN;
}

代码出处:

C语言判断mcu或者cpu的大端小端单片机用_rocketzdsad的博客-CSDN博客见代码判断函数返回值就行原理是用char型指针指向int型数的低地址,强制转换后判断值typedef enum{LITTLE_ENDIAN,BIG_ENDIAN,}DISTINGUISH_ENDIAN;unsigned char little_or_big_endian(void){int test_int = 0x1234;return ( *((char *)&test_int ) == 0x34 ) ? LITTLE_ENDIAN : BIG_ENDIAN

https://blog.csdn.net/rocketzdsad/article/details/115999430

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179132.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档