本代码是对eeprom 的读写操作,用定时器计时,把时间数据每秒写入eeprom,然后实时读出来,调试用串口打印
调试过程发现数据一直写不进eeprom,想了一晚上没有找到原因,反反复复检查,还是没发现错误,看例程是可以写进去的。对比也没有发现不同。
第二天早上重新看手册才发现问题: //mass密钥 解除EEPROM保护
FLASH_PUKR = 0xAE;
FLASH_DUKR = 0x56;
应该是
FLASH_DUKR = 0xAE;
FLASH_DUKR = 0x56;
FLASH_PUKR 是FLASH操作寄存器 不是eeprom寄存器,就一个字母只差。汗!!!!!!!!!!!
下面的代码是可用的
#include <iostm8s103f3.h>
#include <stdio.h>unsigned int eepromaddress;
unsigned int timeflag;
unsigned int time_count; //时间计数
unsigned char time[4];
/******************************************************************************/
//void GPIO_Init()
//{
// PD_DDR_bit.DDR2 = 1;
// PD_CR1_bit.C12 = 1;
// PD_CR2_bit.C22 = 1;
//
// PC_DDR_bit.DDR3 = 1;
// PC_CR1_bit.C13 = 1;
// PC_CR2_bit.C23 = 1;
// PC_DDR_bit.DDR6 = 1;
// PC_CR1_bit.C16 = 1;
// PC_CR2_bit.C26 = 1;
// PC_DDR_bit