本帖最后由 popeye021 于 2013-11-24 09:39 编辑
每次要存储的数据大小从4到20个字节,为了方便,采用的定长20个字节。
所以往24C128里写数据时,每一个数据包的起始写地址是从0,20,40.......开始的。
写数据和读数据都是采用的单独写和读,即一次只读写一个字节的数据。
出现的问题是测量一次获得数据,然后保存,当第14次测量完成后,保存数据时系统就死机了,应该是单片机对24C128写数据的时候出现了问题。关机重启,系统也进入不了正常状态,屏蔽掉系统启动时读24C128里面数据的代码,程序就能执行下去了。综上,问题就出现在存储和读取第14次数据的时候。
对24C128应该可以进行任意地址的单字节读写操作吧?有什么特殊要求吗?
找到一个程序的bug,在计算存储首地址时使用了unsigned char 变量,地址会越界。
不过这样也只是导致存储数据时,存储到错误的地址上,不应该引起类似死机的状态吧? |