最近用杰理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;
}
代码出处:
本文介绍使用杰理AC6966B调试博通BK9527U段发射芯片遇到的问题及解决过程。调试过程中发现无法与接收端成功连接,最终确认原因是提供的demo代码为大端模式,而杰理MCU为小端模式。通过修改代码成功解决问题。
https://blog.csdn.net/rocketzdsad/article/details/115999430

被折叠的 条评论
为什么被折叠?



