CN / EN
CN / EN

提问

设计支持

您的项目私密技术问题如需获得一对一支持,请点击下方联系我们。

app_i2c_transmit_sync在GR551x_SDK_V1.7.0和GR551x_SDK_V2.0.1这两个SDK下的行为有差别吗 GR551x

136***060

2025-05-06 15:20

你好, TE.

在GR551x_SDK_V2.0.1 SDK下, 调用app_i2c_transmit_sync能得到预期结果; 相同硬件, 几乎相同代码(IIC初始化没完成相同)在 GR551x_SDK_V1.7.0 SDK下, 却只能看到设备地址的发送, 接下来的数据没有发送出去.


附代码, 这部分在两个SDK的工程都是完全相同的:

static s32 cx_Write(cx_Rsrc_T *r, const u8 cmd, u8* payload, u8 len){

u8 buff[64];

u8 addr,hdr[2] = {cmd, len};

s32 i,j;

uint16_t ret = 0;

i = cmd;

buff[0] = cmd;

buff[1] = len;

memcpy(&buff[2],payload,len);

ret = app_i2c_transmit_sync(APP_I2C_ID_0, CX_DEV_ADDR, buff, len+2, 2);

if(ret == HAL_OK){

ulog("<%s cmd:0x%02x >", __func__, cmd);

return 0;

}

ulog("</%s ctn73x_Write.err:0x%02x >", __func__, ret);

return -1;

}

这个是OK符合预期的波形, 在GR551x_SDK_V2.0.1 SDK工程下, IIC fre=400K:


这个是异常的波形, 在GR551x_SDK_V1.7.0工程下, IIC fre=400K:


谢谢


0收藏

0赞成

LGY

汇顶员工
2025-05-06 20:19

你好,

1)app_i2c_transmit_sync在GR551x_SDK_V1.7.0工程下返回值是多少?是否为HAL_OK

2)把入参timeout改为100试下?

0条评论

0赞成

0收藏

您的评论

136***060

2025-05-07 13:44

返回值是0x01


0条评论

0赞成

0收藏

您的评论

LGY

汇顶员工
2025-05-08 22:16

GR551x_SDK_V2.0.1 SDK与GR551x_SDK_V1.7.0 SDK的一个典型区别在于对外设初始化参数所在的变量要求不一样:

V2.0.0及后续的版本,要求初始化参数所在的变量是全局变量;V1.7.0及以前的版本没有这个要求。

请检查一下是否这里的差异没做好?可否把初始化的关键代码贴出来看下。

0条评论

0赞成

0收藏

您的评论

登录后可回答问题,请 注册

我们时刻倾听您的声音
联系销售

扫描关注公众号

打开微信,使用“扫一扫”即可关注