历史上的今天
今天是:2024年12月03日(星期二)
2019年12月03日 | stm8 内部EEPROM
2019-12-03 来源:eefocus
第一步:EEPROM介绍



数据EEPROM(DATA)区域可用于存储用户具体项目所需的数据。默认情况下, DATA区域是写保护的,这样可以在主程序工作在IAP模式时防止DATA区域被无意地修改。只有使用特定的MASS密钥才能对DATA区域的写保护解锁(请参考对DATA区域的写操作)。请参考4.4存储器组织结构来了解不同的STM8S MCU的DATA区域大小。

第二步:寄存器说明




第三步:具体实现
/*EEPROM初始化*/
void Eeprom_Init(void)
{
FLASH_CR1 |= 0x01; //编程时间固定位标准编程时间tprog
FLASH_CR2 |= 0x40; //字编程操作被使能
FLASH_NCR2 = 0xBF; //字编程操作被使能
do
{
FLASH_DUKR = 0xAE; // 写入第一个密钥
FLASH_DUKR = 0x56; // 写入第二个密钥 这里和手册是反的
} while((FLASH_IAPSR & 0x08) == 0); // 若解锁未成功,则重新再来
}
/*向EEPROM某一地址写一个8位数据*/
void Eeprom_Write(u16 addr,u8 dat) //EEPROM地址范围0~1023
{
u8 *p;
p = (u8*)(0x4000+addr); // 指针p指向芯片内部的EEPROM第一个单元
*p = dat; // 写入第一个字节
}
/*从EEPROM某一地址读数据,返回一个8位数据*/
u8 Eeprom_Read(u16 addr)
{
u8 *p;
p = (u8 *)(0x4000+addr);
return *p;
}
int main( void )
{
u8 temp;
System_Init(); //系统时钟初始化
Gpio_Init(); //LED指示灯初始化
Eeprom_Init(); //EEPROM初始化
while (1)
{
Eeprom_Write(0,5);
delay_ms(1);
temp = Eeprom_Read(0);
if(temp == 5) //如果读取到的数据时5 则PE5口的LED取反
{
temp = 0; //temp清零
PE_ODR ^= 0x20; //PE5口的LED取反
}
delay_ms(400); //延时400ms
}
}
至此,stm8的EEPROM介绍完毕。是不是操作很简单,在某种程度上比STC单片机的操作还要简单。
下一篇:STM8S 长按键识别
史海拾趣
|
Atheros communications (上海)高薪聘FPGA工程师 WiFi领域著名美资公司,具有竞争力的薪资。 招聘具有相当FPGA经验者,具有一定在IC公司工作的工作背景。 请发送简历至truelygoing@163.com。 工作地点:张江高科,距地铁站5分钟。 注:邮件标题请加上“[FPGA]”,谢谢。… 查看全部问答> |
|
汽车牌照识别是基于图像分割和图像识别理论,对含有汽车牌照的图像进行分析处理,从而确定汽车牌照在图像中的位置,并进一步提取和识别出文本字符。从不同车牌图像中分割出的字符图像各式各样,尺寸变化范围大,增加了识别的难度。尽管可以采用图像 ...… 查看全部问答> |
|
现在很多旧的电脑电源都浪费了,其实用于驱动LED灯比较好。 但是如果直接用限流电阻的话,效率较低。由于电脑电源是开关电源,它先把220V 交流电整流变换成频率较高的振荡,然后整流成5V、 12V等,可在5V 、12V的次级线圈上,整流管之前引出高频的 ...… 查看全部问答> |
|
【FPGA设计问题】Xilinx的IOBUF移植到Altera器件中,RTL代码如何修改? Xilinx的IOBUF移植到Altera器件中,RTL代码如何修改? Xilinx的IOBUF移植到Altera器件中,RTL代码如何修改?本人以前使用的是Xilinx的FPGA,现在改用Altera的FPGA,不知道在对双向端口的控制在Altera中是怎样实现的,直接用下面的assign语句可以保 ...… 查看全部问答> |
|
我把整个的NAND FLASH读出来,然后通过一些办法把NK文件读出来了。。 但是我发现里面的都是系统文件,里面原先写入NAND FLASH文件的文件不能导出来。请问有什么办法把这些导出来。。 我写个示意图: 00000000H:xx xx xx xx xx xx xx xx xx xx ...… 查看全部问答> |
|
我的开发板有做好的BSP包,我想屏蔽去掉一些驱动,写上自己的驱动,然后烧到板子里去,怎么做自己的镜像呢? 新手,求指教!!!! 我的驱动也写好了,屏蔽原有的驱动是不是直接删掉DRIVERS下的驱动文件就可以了呢???… 查看全部问答> |
|
大家好,请问这里有过英蓓公司 EDUKIT-III ARM 开发箱子吗?加我QQ 请教、交流,学习, 大家好,请问这里有过英蓓公司 EDUKIT-III ARM 开发箱子吗?加我QQ 请教、交流,学习,… 查看全部问答> |
|
我想用定时器b来做iar里面定时器a的演示程序功能。但是我把程序改好之后,一直不能正常运行,从右面的disassem××y窗口里面看不到数据。请问为何。程序那里有错?谢谢大侠!!! #include <msp430x14x.h> void main(void) { P1DIR |= 0x0 ...… 查看全部问答> |




