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

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

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


谢谢,那就是用时间来估算是否读写完成,DLL没有状态可以读,是吧?


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


可以了,在读写EEPROM线程里面,函数返回就是通讯结束,谢谢!


另外请教能否修改读写的时间,现在客户反馈烧写时间太长,希望加快些


您好,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

若速度仍不能满足您的需求,可随时与我沟通反馈,我们会针对您的需求评估有无更合适的方案。



只有登录才能回复,可以选择微信账号登录