stm8s开发(九) EEPROM的使用:使用EEPROM存储数据!
来源:互联网 发布:中标软件(北京)怎么样 编辑:程序博客网 时间:2024/05/22 11:45
EEPROM是单片机应用系统中经常会用到的存储器,它主要用来保存一些掉电后需要保持不变的数据。在以前的单片机系统中,通常都是在单片机外面再扩充一个EEPROM芯片,这种方法除了增加成本外,也降低了可靠性。现在,很多单片机的公司都推出了集成有小容量EEPROM的单片机,这样就方便了使用,降低了成本,提高了可靠性。
STM8单片机芯片内部也集成有EEPROM,容量从640字节到2K字节。最为特色的是,在STM8单片机中,对EEPROM的访问就象常规的RAM一样,非常方便。EEPROM的地址空间与内存是统一编址的,地址从004000H开始,大小根据不同的芯片型号而定。
为了管理方便,定义EEPROM的地址
#define EP_HEADER_ADDR 0x4000操作EEPROM需要初始化,也就是FLASH解锁,解锁需要两个密钥,顺序还不能调换。
void EEPROM_init(void){ do { FLASH_CR1=0x00; FLASH_CR2=0x00; FLASH_NCR2=0xFF; FLASH_DUKR = 0xAE;// 写入第一个密钥 FLASH_DUKR = 0x56;// 写入第二个密钥 } while((FLASH_IAPSR & 0x08) == 0);// 若解锁未成功,则重新再来}还有一个加锁的功能,一般来说操作完EEPROM之后需要加锁保护。
void EEPROM_lock(void){ FLASH_IAPSR=(u8)(~0x08); //重新上锁}接下来就是两个读写的基本操作了。
//EEPROM指定地址写入一个数据 addr:相对地址 dat:数据void EEPROM_write(unsigned char addr, unsigned char dat){ unsigned char *p; p=(unsigned char *)(EP_HEADER_ADDR + addr); *p=dat; while(!(FLASH_IAPSR&0x04)); //等待写操作成功}//EEPROM指定地址读出一个数据 addr:相对地址unsigned char EEPROM_read(unsigned char addr){ unsigned char *p; p=( unsigned char *)(EP_HEADER_ADDR + addr); return *p; }这里给的地址是绝对地址,函数内有个偏移地址的操作(偏移4000H)。
炒鸡简单是不?
有关EEPROM和FLASH的介绍:http://blog.csdn.net/yuanlulu/article/details/6163106
附上stm8s在IAR环境下的项目工程,包括了SPI、IIC、PWM、AWU、USART、EEPROM等片上硬件的初始化代码。
http://download.csdn.NET/detail/devintt/9454188
阅读全文
0 0
- stm8s开发(九) EEPROM的使用:使用EEPROM存储数据!
- stm8s eeprom
- STC12LE5052的EEPROM使用
- EEPROM存储复杂的数据
- Arduino - 使用EEPROM保存数据
- 使用共用体存储各类型数据到EEPROM
- psoc4的eeprom的使用
- STM8内部EEPROM的使用
- STM8内部EEPROM的使用
- STM8内部EEPROM的使用
- STM8S 操作内部EEPROM
- STM8S EEPROM 操作
- STM8S读写内部EEPROM
- 使用PICC预定义EEPROM数据的内容
- I2C总线的使用 --- EEPROM 存储器使用
- atmega8 例程: EEPROM使用
- 89c52 EEPROM使用
- avr的eeprom的使用示例
- Oracle调试经验-查看当前数据库的实例名
- 跳转到系统短信发送页面
- 嵌入式学习日记(四)
- 贴个nginx配置
- 不到 200 行代码,教你如何用 Keras 搭建生成对抗网络(GAN)
- stm8s开发(九) EEPROM的使用:使用EEPROM存储数据!
- qt for android 在windows下搭建开发环境
- Spring MVC中文乱码问题解决方案
- Linq之详解 From Where Select Group Into OrderBy Let Join
- 配置静态路由
- sqlserver 多表关联多条件分页排序查询
- 本地Hadoop学习环境搭建(win10 Linux子系统)
- 引用类型-Array
- 微信支付url未注册问题解决方案