stm8s eeprom

这篇博客记录了作者在使用STM8S微控制器进行EEPROM读写操作时遇到的问题。通过定时器每秒将时间数据写入EEPROM,并通过串口实时读取并打印。在调试过程中,发现数据无法写入,经过仔细比对和查阅手册,发现是由于误将FLASH_PUKR用于解除EEPROM保护,而应使用FLASH_DUKR。修正这一错误后,代码得以正常运行。
摘要由CSDN通过智能技术生成

本代码是对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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值