STM8S 内置EEPROM,对于非常大须要带记忆的产品来说,是个非常好的资源,下面是我个人摸索出来的,而且验证OK,大家如须要可放心使用。

 #define EEPROMADDR0X000  ((u32)(FLASH_DATA_START_PHYSICAL_ADDRESS))
#define EEPROMADDR0X001 ((u32)(FLASH_DATA_START_PHYSICAL_ADDRESS+1))
#define EEPROMADDR0X002 ((u32)(FLASH_DATA_START_PHYSICAL_ADDRESS+2))
#define EEPROMADDR0X003 ((u32)(FLASH_DATA_START_PHYSICAL_ADDRESS+3)) void FLASH_Unlock(FLASH_MemType_TypeDef MemType)
{
/* Check parameter */
assert_param(IS_MEMORY_TYPE_OK(MemType)); /* Unlock program memory */
if (MemType == FLASH_MEMTYPE_PROG)
{
FLASH->PUKR = FLASH_RASS_KEY1;
FLASH->PUKR = FLASH_RASS_KEY2;
} /* Unlock data memory */
else
{
FLASH->DUKR = FLASH_RASS_KEY2; /* Warning: keys are reversed on data memory !!! */
FLASH->DUKR = FLASH_RASS_KEY1;
}
} void FLASH_DeInit(void)
{
u8 temp = 0;
FLASH->CR1 = FLASH_CR1_RESET_VALUE;
FLASH->CR2 = FLASH_CR2_RESET_VALUE;
FLASH->NCR2 = FLASH_NCR2_RESET_VALUE;
FLASH->IAPSR &= (u8)(~FLASH_IAPSR_DUL);
FLASH->IAPSR &= (u8)(~FLASH_IAPSR_PUL);
temp = FLASH->IAPSR;
/* Reading of this register causes the clearing of status flags */
} void FLASH_ProgramByte(u32 Address, u8 Data)
{
/* Check parameters */
assert_param(IS_FLASH_ADDRESS_OK(Address));
*((PointerAttr u8*) Address) = Data;
} u8 FLASH_ReadByte(u32 Address)
{
/* Check parameter */
assert_param(IS_FLASH_ADDRESS_OK(Address));
return(*((PointerAttr u8*) Address)); /* Read byte */ } FLASH_Unlock(FLASH_MEMTYPE_DATA);//解密EEPROM 可编程
FLASH_DeInit();//EEPROM寄存器复位 FLASH_Unlock(FLASH_MEMTYPE_DATA);//解密EEPROM 可读写数据
FLASH_ProgramByte(EEPROMADDR0X000,0X25);//在首地址写入数据0x25
FLASH_ReadByte(EEPROMADDR0X000);//将首地址的数据读出来

最新文章

  1. 关于CommonJS规范摘录
  2. [1]IP地址查询
  3. advanced validation on purchase.
  4. H5案例学习笔记
  5. nginx 配置wordpress固定链接(自定义)
  6. struts2文件上传(保存为BLOB格式)
  7. alert
  8. spring,property not found on type
  9. iOS加密算法总结
  10. 0x02 译文:Windows桌面应用Win32第一个程序
  11. Python之路,进程、线程、协程篇
  12. Java 控制类的引用类型,合理使用内存
  13. jquery_ajax 跨域
  14. ESP8266使用笔记之常用固件
  15. SQLserver 进程被死锁问题解决
  16. spring总结之一(spring开发步骤、bean对象的管理、bean生命周期)
  17. x1c 2018 体验
  18. 翻译 | The Principles of OOD 面向对象设计原则
  19. Android 输入法遮挡问题
  20. Elasticsearch学习之ES节点类型以及各种节点的分工

热门文章

  1. memset函数的使用
  2. ios改变系统默认样式
  3. vhost文件设置
  4. Tcl语言笔记之一
  5. django学习之Model(三)QuerySet
  6. Qt对话框_模态/非模态
  7. Qt5程序开机自启动(windows)
  8. synapse socket总结一:服务器模型
  9. JavaScript 中的日期和时间
  10. C++中的智能指针(auto_ptr)