3
27
36
新手上路
使用道具 举报
1万
7万
11万
管理员
eric2013:足够了,我们可以简单的计算一下,假设I2C的速度是400KHz,发送一个字节数据过去,至少是8个CLK,时间就是0.02us,循环1000次就是20ms。 (2016-07-25 10:05) 
voidmain:对哦,这样看时间是足够的了,奇怪的是有时候ee_WriteBytes会return 0,然后多写一两次才会return 1,按说如果EE没坏的话,一次就应该写成功了,您有遇到过这种情况吗? (2016-07-25 10:16) 
eric2013:我们的程序里面写入也是发1000次,保证写入成功。写入完毕后,再发1000次检查写入成功 https://forum.anfulai.cn/forum.php?mod=viewthread&tid=15705 (2016-07-25 10:19) 
voidmain: 还有一个问题就是,写入完毕后,发1000次检查,检查完毕后,若写入成功,按说应该发送一个停止信号吧
voidmain: 谢谢您了,对于goto没有理解到位。 还有一个问题困扰好久了,对于写操作来说,按说第二步发起的控制字节的高7位是根据硬件确认的,bit0是读写控制位,为什么当EE_ADDR_A8==1时,第二步发起的控制字节还会根据要写入的地址变化?
voidmain: 今天看了一下,感觉还是应该执行一下停止信号,因为如果成功收到应答直接return 1,不会执行末尾的那个停止信号吧。 (2016-07-26 10:34) 
voidmain:好的,太谢谢了! 还有一个问题就是datasheet上 twr最大是5ms。这个twr是写入一个字节需要的twr还是说不管写入多个字节,都只需要twr? 如果说写入一个字节就需要twr,那咱们一次性写入多个字节例如200个,是不是就需要200*twr?查询的次数是否也要跟着写入的字 .. (2016-07-26 11:07) 
本版积分规则 发表回复 回帖后跳转到最后一页
|小黑屋|Archiver|手机版|硬汉嵌入式论坛
GMT+8, 2025-8-14 15:50 , Processed in 0.050699 second(s), 27 queries .
Powered by Discuz! X3.4 Licensed
Copyright © 2001-2023, Tencent Cloud.