STM8L152的EEPROM读写(使用固件库)
STM8L系列单片机内置1K字节的EEPROM,使用起来很方便。

EEPROM的地址为:

使用1.6.1的固件库
void EEPROM_Write_Byte(uint16_t Addr,uint8_t Data)
{
asm("sim");//关闭中断
FLASH_Unlock(FLASH_MemType_Data);
//while(!FLASH_IAPSR_DUL);//如果DUL没有置位,说明解锁不成功,最好加入超时判断
//FLASH_EraseByte(EEPROM_STARTADDR+Addr);//先擦除再写
//FLASH_WaitForLastOperation(FLASH_MemType_Data);//等待操作完成
FLASH_ProgramByte(EEPROM_STARTADDR+Addr, Data);
FLASH_WaitForLastOperation(FLASH_MemType_Data);
FLASH_Lock(FLASH_MemType_Data);
asm("rim");//打开中断
}
//注意写的时候一定要写入4字节的整数倍
void EEPROM_Write_Word(uint16_t Addr,uint32_t Data)
{
asm("sim");//关闭中断
FLASH_Unlock(FLASH_MemType_Data);
//FLASH_EraseByte(EEPROM_STARTADDR+Addr);//先擦除再写
//FLASH_WaitForLastOperation(FLASH_MemType_Data);//等待操作完成
//FLASH_EraseByte(EEPROM_STARTADDR+Addr+1);//先擦除再写
//FLASH_WaitForLastOperation(FLASH_MemType_Data);//等待操作完成
//FLASH_EraseByte(EEPROM_STARTADDR+Addr+2);//先擦除再写
//FLASH_WaitForLastOperation(FLASH_MemType_Data);//等待操作完成
//FLASH_EraseByte(EEPROM_STARTADDR+Addr+3);//先擦除再写
//FLASH_WaitForLastOperation(FLASH_MemType_Data);//等待操作完成
FLASH_ProgramWord(EEPROM_STARTADDR+Addr, Data);
FLASH_WaitForLastOperation(FLASH_MemType_Data);//等待操作完成
FLASH_Lock(FLASH_MemType_Data);
asm("rim");//打开中断
}
uint8_t EEPROM_Read_Byte(uint16_t Addr)
{
uint8_t res;
res = FLASH_ReadByte(EEPROM_STARTADDR+Addr);
return res;
}
写之前都不用擦除先擦除,直接对字节操作,方便的不要不要的
STM8L152的EEPROM读写(使用固件库)的更多相关文章
- STM32固件库详解
STM32固件库详解 emouse原创文章,转载请注明出处http://www.cnblogs.com/emouse/ 应部分网友要求,最新加入固件库以及开发环境使用入门视频教程,同时提供例程模板 ...
- (一)STM32固件库详解(转载)
本篇博文是转载自emouse,因为不能直接转载,所以是复制过来再发布的. emouse原创文章,转载请注明出处http://www.cnblogs.com/emouse/ 1.1 基于标准外设库的 ...
- STM32 HAL固件库编程的文件构架
对于我这种以前只接触过51和AVR单片机编程的小菜来说,现在开始学习STM32的编程,对于函数的功能以及C语言的语法都还好理解,难的是它提供的那一套硬件抽象层(HAL)驱动是怎么和其他的东东搭配在一起 ...
- STM32 Cube固件库编程之新建工程
Cube固件库是ST现在主推的固件库,并且在它的官网已经找不到原来的标准库可供下载.Cube固件库的构架图如下 这种新式构架可以有效的加快软件工程师的工程进度. 新建一个工程项目主要包括以下的步骤: ...
- STM32固件库3.5+uCOS2.86移植(转自暴走的工程师)
考了很多移植的资料和代码,终于移植好了...应该是完美移植吧~~哈哈哈~~ 编译环境是IAR 工程适用于STM32F10X大容量产品,如果不是,请自行修改启动文件和工程配置 编译器优化等级最高...这 ...
- 如何从ST网站找到对应的固件库
ST官方网站改版后,基本上很难搜索到固件库的地址,找了半天才找到固件库的下载地址,通过此方法可以找到其他需要的资源,故记下来方便大家. 下载的网站地址为: Home>Tools and Soft ...
- STM32固件库
一.STM32固件库开发和传统寄存器开发方式的区别 二.CMSIS标准 CMSIS标准--Cortex Microcontroller Software Interface Standard,是ARM ...
- stm32开发笔记一:使用固件库在RealView-MDK中新建工程(上)
很久没有碰单片机了,两年了吧,因为项目需要,最近入手一块红牛的开发板,核心为STM32F103ZE.虽然以前做过大概半年的stm32的开发,现在天天在.net平台下写代码,已经忘记的差不多,恰逢周末, ...
- 【STM32学习笔记1】基于固件库的STM32_MDK工程模版
文章包含STM32固件库介绍和工程模板搭建两方面内容. 一.STM32固件库介绍 要建立工程模板,首先要对STM32的固件库有所了解.STM32的固件可以从ST官网下载,网址为:http://www. ...
随机推荐
- ES常见问题整理
1.集群状态red.yellow处理方法 1.red表示主分片数据不完整,通常时由于某个索引的主分片为分片unassigned,找出这个分片未分配的原因,解决即可: curl -XGET http:/ ...
- 从iPhone下滑 看科技转型之困
看科技转型之困" title="从iPhone下滑 看科技转型之困"> 毫无疑问,苹果正在面临一次关键转型.最近苹果股价较高点134.54美元下跌21%以上的实事, ...
- Sed 实记 · laoless's Blog
sed编辑命令 p 打印匹配行 = 打印文件行号 a 在定位行之后追加文本 i 在定位行之前插入文本 d 删除定位行 c 用新文本替换定位文本 s 使用替换模式替换相应模式 r 从另一个文件读取文本 ...
- JS逆向某网站登录密码分析
声明: 本文仅供研究学习使用,请勿用于非法用途! 目标网站 aHR0cHM6Ly9hdXRoLmFsaXBheS5jb20vbG9naW4vaW5kZXguaHRt 今日目标网站是某知名支付网站,感觉 ...
- Javascript学习笔记-基本概念-数据类型
1.typeof 操作符的返回值: "undefined"——如果这个值未定义: "boolean"——如果这个值是布尔值: "string" ...
- 7-36 jmu-python-统计字符个数 (10 分)
输入一个字符串,统计其中数字字符及小写字符的个数 输入格式: 输入一行字符串 输出格式: 共有?个数字,?个小写字符,?填入对应数量 输入样例: helo134ss12 输出样例: 共有5个数字,6个 ...
- py基础之无序列表
'''dic是一个可以将两个相关变量关联起来的集合,格式是dd={key1:value1,key2:value2,key3:value3}'''d = { 'adam':95, 'lisa':85, ...
- 前端性能优化之Lazyload
前端性能优化之Lazyload @(Mob前端-冬晨)[JavaScript|技术分享|懒加载] [TOC] Lazyload 简介 前端工作中,界面和效果正在变得越来越狂拽炫酷,与此同时性能也是不得 ...
- AJAX 的 Ajax返回数据之前的loading等待效果(gif效果等)
首先,我们通过ajax请求,向后台传递参数,然后后台经过一系列的运算之后向前台返还数据,我希望在等待数据成功返还之前可以展示一个loading.gif图 不废话,在页面上执行点击事件(<a sc ...
- Alibaba Sentinel 限流与熔断初探(技巧篇)
目录 1.Sentinel 是什么 ?主要能解决什么问题? 2.限流与熔断的使用场景 3.Sentinel 源码结构 4.在 IntelliJ IDEA 中运行 Sentine Demo 温馨提示:源 ...