最近用杰理AC6966B调试博通的BK9527 U段发射芯片,一直没调通,经过测试IIC通讯是通,硬件还是好的,但是怎么都调不到与接收端成功连接。
最后咨询原厂得知提供的demo代码是大端编码模式的MCU代码,如果是小端模式,在部分写寄存器操作的过程中,如果直接传指针数据会反掉。
杰理的MCU应该是小端模式,平时写代码用memcpy函数操作指针赋值最后得到的结果都是低位在前。
为了进一步验证,网上找了一段代码验证,原理跟memcpy给指针赋值是类似的,最后成功验证到杰理的AC,AD系列都是小端模式:
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