PIC I2C&SPI 读数交替对错,大侠解惑!

2020-02-09 09:36发布

目的:做一个小小的记录器,用I2C读取IC的资料(Sample_bat();)放到0x40~0x5F中,然后通过SPI放到M25P128中(Record_bat();)。

现象: I2C读取IC的资料总是出现一个对,一个错,交替重复出现(SPI写没有问题) 。但如果用I2C只读取,不写FLASH的话,那么I2C读取就没有问题

      如下,第一次Sample_bat();正确,经过Record_bat();不正常 ,然后又正常,再又不正常,很郁闷,用PROTEUS仿真没有问题。

void Scan_battery(void)
{
        //clear the status flag
        Bat_Flag=0;               

        //sample the parameters               
        Sample_bat();

          //recorde the parameters( write the parameter to flash)
        curaddress=GetFlashAddress();
        Record_bat();                                        //record 16 bytes

        StoreFlashAddress(curaddress+16);

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
portx
2020-02-09 09:41
回复【楼主位】longzixin168
-----------------------------------------------------------------------

注意一下I2C的存储器一般是要求写指令后需要等待一段时间的,大约写一个字节需要延时5mS的时间。也许你的写指令可能没有考虑到这个延时。

一周热门 更多>