如题,上位机是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
若速度仍不能满足您的需求,可随时与我沟通反馈,我们会针对您的需求评估有无更合适的方案。