解锁一次就够了。 toofree 发表于 2017-2-14 13:13
要不监测一下电源电压是不是稳定?
都没用自己做的电源控制板,用的开关电源,电源应该没问题 中山无雪 发表于 2017-2-14 14:06
先找出死在哪句上了
*((uint8_t *)(USERPAGE + addr + i)) = buff;
while(FLASH_IAPSR_EOP == 0);
应该是这两句有问题,把写屏蔽掉测试没问题 wudianjun2001 发表于 2017-2-14 14:38
*((uint8_t *)(USERPAGE + addr + i)) = buff;
while(FLASH_IAPSR_EOP == 0);
应该是这 ...
while(FLASH_IAPSR_EOP == 0);
while中设置个超时退出变量,在外面判断是否是超时了,如果超时的话,再研究看什么造成的超时。 ((uint8_t *)(USERPAGE + addr + i))
有没有可能超出EEPROM的地址范围?如果有可能超出的话,那么会有问题。 toofree 发表于 2017-2-14 18:54
((uint8_t *)(USERPAGE + addr + i))
有没有可能超出EEPROM的地址范围?如果有可能超出的话,那么会有问题 ...
这句出问题的可能性较大 toofree 发表于 2017-2-14 18:54
((uint8_t *)(USERPAGE + addr + i))
有没有可能超出EEPROM的地址范围?如果有可能超出的话,那么会有问题 ...
这个绝对没有超出,EEPROM是00-FF,我程序里最大是用到F7,而且这个测试死机的地方写的是D0,D1位置 楼主问题解决了吗?怎么没看到说明,哪一楼是正确答案呵?库函数里的写eeprom时用转换地址是 *(FAR uint8_t*) (uint16_t)Address,而这地址从0x1000开始,是否与这个有关呢?
页:
1
[2]