原标题:STM8L探索套件学习笔记-EEPROM(十一)
上节将到官方例程使用 EEPROM存储外围电路消耗的电流值,今天我们对 STM8L的EEPROM介绍下。STM8L带有的32K的FLASH和1K的EEPROM都可以编程和擦除,编程模式有1、字节byte,2、字word,3、BLO CK和4、编程和擦写完中断。
由于默认是锁定的,所以对FLASH和EEPROM编程首先要解锁,解锁的方式是写如寄存器特定值,0X56 0XAE。在IAR编译器当中,__eeprom 用于EEPROM 存储空间, 控制数据存放,控制指针类型和存放。@用于变量的绝对地址定位。也可以用#pragma location 命令。
EEPROM 区域数据存储:
用关键字 __eeprom 控制来存放, __eeprom关键字写在数据类型前后效果一样。
__eeprom unsigned char a;//定义一个变量存放在EEPROM空间
unsigned char __eeprom a;//效果同上
__eeprom unsigned char p[];//定义一个数组存放在EEPROM空间
对于EEPROM空间的变量操作同SRAM数据空间的操作方法一样,编译器会自动
调用 __EEPUT(ADR,VAL), __EEGET(VAR, ADR)宏函数来对EEPROM变量的
操作。
EEPROM空间绝对地址定位:
__eeprom unsigned char a @ 0x8;//定义一个变量存放在EEPROM空间
0X08单元
__eeprom unsigned char p[] @ 0x22//定义一个数组存放在EEPROM空间,<