微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM8S EEPROM 读写字节操作

STM8S EEPROM 读写字节操作

时间:12-03 来源:互联网 点击:
C语言:Codee#11824

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 实验平台: STM8S103F2P6 FM 接收实验核心板
+ 硬件 : STM8S103F2P6
+ 开发平台: IAR For STM8 1.10
+ 仿真器 : ST-Link
+ 日期 : 2010-6-29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
#include "stm8s.h"

unsignedcharRead_Word;

/*******************************************************************************
* ==启用外部晶振函数==
*******************************************************************************/
voidHSE_CLK_INIT(void)
{
CLK_DeInit();
CLK_HSECmd(ENABLE);
while(SET!=CLK_GetFlagStatus(CLK_FLAG_HSERDY));
CLK_SYSCLKConfig(CLK_PRESCALER_CPUdiv1);
CLK_ClockSwitchCmd(ENABLE);
CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_HSE,DISABLE,CLK_CURRENTCLOCKSTATE_ENABLE);
}

/*******************************************************************************
* ==EEPROM初始化函数==
* FLASH_DeInit(); --> 复位EEPROM的寄存器值
* FLASH_Unlock(FLASH_MEMTYPE_DATA); --> 解锁 对 Data EEPROM memory 进行操作
* FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD); --> 标准编程时间
*******************************************************************************/
voidEEPROM_INIT(void)
{
FLASH_DeInit();
FLASH_Unlock(FLASH_MEMTYPE_DATA);
FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);
}

/*******************************************************************************
* ==Main函数==
* !!在对EEPROM进程写操作的时候 , 应用程序停止运行 !!
* !! 如果要擦出数据,就是往相应的地址里写入 0x00 !!
*******************************************************************************/
voidmain(void)
{
HSE_CLK_INIT();
EEPROM_INIT();

FLASH_ProgramByte(0x4055,0x88);// 在 地址0x4055 写入数据0x88
while(1)
{
Read_Word=FLASH_ReadByte(0x4055);// 读出 地址0x4055 的数据
}
}

使用stvp + stlink 可以读到stm8s103f2 的EEPROM的数据如图:


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top