CH341ReadEEPROM CH341WriteEEPROM 这2个函数的返回BOOL永远都是1??我试过在不插片和插反时 返回都是1,以至于程序中的错误判断失效,给的例程中的调试后结果也一样!
能给个解惑吗?谢谢!!
CH341ReadEEPROM CH341WriteEEPROM 这2个函数的返回BOOL永远都是1??我试过在不插片和插反时 返回都是1,以至于程序中的错误判断失效,给的例程中的调试后结果也一样!
能给个解惑吗?谢谢!!
理论上来说是不可能的. CH341ReadEEPROM/CH341WriteEEPROM是调用的CH341StreamI2C来实现的,当读不到数据应该返回FALSE
刚才用CH341PAR.EXE测试了一下,在不插EEPROM的情况下去读,读出的数据全是0xFF,没有返回FALSE
谢谢!您测试了一下结果和我的相同,但是返回确实是1!这个返回值是一个 int , typedef int BOOL; 我想能不能改进一下这个函数?这个返回还是很有用的!
你可以通过读出的数据来判断是否插入EEPROM
那这么说确实是程序的BUG?我想应该是没有检测应答吧? 读出的数据是不好判断的!
到底怎么解决这个问题呢?怎么没有继续回答了呢?我最近也在纠结这个问题,就是EEPROM读写检测应答位的问题!!!为什么调用的API函数会不检测应答位?这不是与真正的I2C协议不符么?如果不检测应答位我怎么知道读出来的数据就是正确的?求解!!!
您可以在你存储芯片第一次使用时,在某个位置设个一个非FF的数据标识,每次使用前,先读出来判断一下。
问题是,在某个位置设个一个非FF的数据标识,每次使用前,先读出来判断一下,万一读取这个时正常,再读其它的时候出问题了,出来是FF,我不知道究竟就是FF呢还是出问题后出来的FF!!!希望沁恒的技术支持人员能给出解答!