WCH沁恒单片机
直播中

崔映芬

7年用户 890经验值
私信 关注
[问答]

CH341T USB转I2C写EEPROM时怎么知道写动作完成?

如题,上位机是C#写的,参考CH341PAR这个源程序,用的是CH341DLL.DLL, 目前读写数据正常。
现在需要知道I2C读写EEPROM时什么时候结束,好显示进度条,请知道的朋友指点下,谢谢!
  

回帖(4)

李诗晴

2022-7-5 15:42:01
您好,可以读写EEPROM时一般根据型号预先指导器件的内部容量。然后通讯时根据已编程字节数与总容量之间进行比例换算。
举报

陈建华

2022-7-5 15:42:07
您好,如上的I2C读写函数返回即代表当前数据长度的I2C通讯已经完成,但根据上面提到的需求需要知道整体进度,所以肯定要先确定EEPROM总容量的。
举报

黄敏

2022-7-5 15:42:12
可以了,在读写EEPROM线程里面,函数返回就是通讯结束,谢谢!
举报

孟佳

2022-7-5 15:42:24
您好,CH341DLL提供I2C的速率设定API,可以调用该接口函数将I2C的速率设置为高速。具体如下:
BOOL    WINAPI  CH341SetStream(  // 设置串口流模式
    ULONG           iIndex,  // 指定CH341设备序号
    ULONG           iMode );  // 指定模式,见下行
// 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz(默认值),10=快速/400KHz,11=高速/750KHz
// 位2:     SPI的I/O数/IO引脚, 0=单入单出(D3时钟/D5出/D7入)(默认值),1=双入双出(D3时钟/D5出D4出/D7入D6入)
// 位7:     SPI字节中的位顺序, 0=低位在前, 1=高位在前
// 其它保留,必须为0
若速度仍不能满足您的需求,可随时与我沟通反馈,我们会针对您的需求评估有无更合适的方案。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分