今天一下午全纠结在这了,还有上午。。下面这个是等待EEPROM 完成内部时序的函数,经过调试,这个函数运行结束起始位发送标志SB为1。在这函数之后就是判断总线是否空闲,开始发送起始信号。。。这时候SB位是1,,
不过不影响实验结果,结果显示很好。纠结一下午也没有把这个SB位在等待函数中清除掉。。
第二点是读数据函数中有下面这句话,可以省略,因为不论是ADDR,还是起始信号发送位SB,都经过软件序列清零了,
第三个就是问题了,在读最后一个数据的时候,按照代码顺序在发送数据之前就产生停止信号了,
我猜想是因为没有发送数据,所以不能产生非应答位,所以不能产生停止信号,直到代码下面的最后一个数据发送完成,再产生停止信号。。。
AT24C02:The sequential read operation is terminated when the
microcontroller does not respond with a “0” but does generate a following stop condition