stm8s有自带的eeprom,起始地址是0x4000,终止到哪看手册,因为我用的时候只写一个4字节数据,配置如下:
入参:eeprom偏移地址,写入的数据
void eeprom_write(const unsigned char addr,unsigned long date)
{
asm("sim");
FLASH_CR1_FIX = 1;//编程时间固定为标准编程时间
FLASH_CR2_WPRG = 1;//使能字编程
FLASH_NCR2_NWPRG = 0;/使能字编程
do
{
FLASH_DUKR = 0xAE;
FLASH_DUKR = 0x56;
}
while(!(FLASH_IAPSR_DUL & 1));//等待解锁
unsigned long *p = (unsigned long*)(0x4000 + addr);
*p = date;
//while(!FLASH_IAPSR_EOP & 1);//等待写完成//加上掉电写入不准
FLASH_IAPSR_DUL = 0;//上锁
asm("rim");
}
说明:while(!FLASH_IAPSR_EOP & 1);被我注释掉了,原因如注释所写的那样,我也不知道为什么。然后写完之后记得上锁,要不然会不准。另外就是这里中文手册又出错了,就是do while语句中的那两句给FLASH_DUKR写入密钥,中文手册写反了。
读eeprom就比较简单了,代码如下:
入参:eeprom地址偏移量 出参:相应地址的值*/
unsigned long eeprom_read(const unsigned char addr)
{
return *((unsigned long*)(0x4000 + addr));
}
关键字:stm8s eeprom读写 起始地址
引用地址:
stm8s eeprom读写
推荐阅读最新更新时间:2024-11-13 12:25
STM8S定时器操作
综述 STM8S提供三种类型的 TIM 定时器:高级控制型(TIM1)、通用型(TIM2/TIM3/TIM5)和基本型定时器(TIM4/TIM6)。它们虽有不同功能但都基于共同的 架构 。此共同的架构使得采用各个定时器设计应用变得非常容易与方便(相同的寄存器映射,相同的基本功能)。 本文只针对STM8S103该芯片进行介绍,该芯片的定时器个数为3个,每个类型的定时器都一个,分别为高级控制型(TIM1)、通用型(TIM2)、基本型定时器(TIM4)。 关于STM8S103手册的TIM简介 每个定时器的功能都有详细介绍,大家可以认真看下。 TIMx详细讲解 3.1 TIM1解析 TIM1_Prescaler :即预分
[单片机]
STM8S_005_ADC采集单通道电压
Ⅰ、写在前面 和前面51系列的芯片相比,STM8S芯片的优势之一在于外设资源要丰富且功能要强大的多。因此,本文讲述STM8S的一项比较实用的功能:ADC采集电压。 在物联网的产品中,大多数传感器都使用了模数转换(ADC)这一功能。本文提供STM8S两种转换模式: Ø 单次软件触发 Ø 连续转换 本文将结合“STM8S参考手册”中ADC章节和软件源代码给大家讲述关于ADC相关的知识和用法。 为方便大家阅读,本文内容已经整理成PDF文件: http://pan.baidu.com/s/1i5uWhJR 作者:strongerHuang 版权所有,未经允许,禁止用于其它商业用途!!! Ⅱ、ADC基础知识 AD
[单片机]
STM8S单片机开发的过程及方法
STM8S单片机开发环境由三大部分组成,包括PC机上的开发软件(集成开发软件、驱动程序等)、调试&编程器ST-LINK、目标单片机电路板。如下图所示: 1、PC机上开发软件 PC机上的软件包括:ST-LINK驱动程序、IAR集成开发环境、STM8S标准函数库、STVP烧录工具。 ST-LINK调试&编程器需要驱动程序 这个驱动程序不需要单独安装,安装STVP时会一起安装。 IAR集成开发环境 IAR集成开发环境是集程序编辑、编译、程序下载、调试等功能为一体的集成开发工具,它可以通过 ST-LINK调试&编程器向目标STM8S单片机下载程序,并进行在线调试(包括设置断点、单步执行、查看内单片机存数据等)。 针对ST
[单片机]
STM8S——8位基本定时器(TIM4)
简介:该定时器由一个带可编程预分频器的8位自动重载的向上计数器所组成,它可以用来作为时基发生器,具有溢出中断功能。 主要功能: (1)8位向上计数的自动重载计数器; (2)3位可编程的预分配器(可在运行中修改),提供1、2、4、8、16、32、64、128这8种分频比例; (3)中断产生:更新中断(溢出,计数器初始化)。 代码实现: 1 /* Includes ------------------------------------------------------------------*/ 2 #include stm8s.h 3 4 /* Private define --------------
[单片机]
STM8S介绍(编程环境、烧录、芯片内容)
【1】我使用的开发板和烧录器 首先,我用的是STM8S003F3P6这款开发板,淘宝上就有了,5块钱以内吧 然后是烧录器,ST Link,大概20块钱以内吧 搜寻『STM8S 开发板』『ST Link』就可以找到了 我这边不会给出链接,我不是来推销的 另外,这边顺便给出烧录时需要接的线(图片) 总共需要4条线(3条?) 『3.3V』『SWIM』『GND』『RST』(也许RST不需要?) 为什么会这样认为?我一开始也是接4条,后来不小心RST没接,也能烧录。。 【2】编程环境 这边先给出IAR的链接(编程环境) https://pan.baidu.com/s/1GPdgTsoOzgZ5n6StFHTlrg 提取码:2t3
[单片机]
stvd+stm8s单片机程序编译报错
编译stm8s程序过程报如下错误: Compiling stm8s_stdperiph_driversrcstm8s_adc2.c... cxstm8 +mods0 +debug -pxp -no -pp -l -istm8s_stdperiph_driverinc -i C:Program Files (x86)COSMICCXSTM8Hstm8 -i C:Program Files (x86)STMicroelectronicsst_toolsetinclude -clDebug -coDebug stm8s_stdperiph_driversrcstm8s_adc2.c #error cpstm8 stm8s_stdp
[单片机]
STM32L系列单片机内部EEPROM的读写
STM32L系列单片机内部提供了EEPROM存储区域,但实质上,其FLASH也是EEPROM类型,只不过有一块区域被开放出来专门用作EEPROM操作而已。STM32L的EEPROM使用寿命设计为100000次擦写以上,容量为2K-4K,这对于一般设备的参数存储来说是非常理想的。但从EEPROM使用方式看,其不适用于被反复修改的数据存储使用,一般作为配置参数,其修改次数往往是比较少量的。 STM32L的EEPROM和FLASH是统一编址,操作共用同一个读写电路,所以在EEPROM读写的时候STM32L核对于FLASH的一切访问和操作都将暂停,只有当EEPROM的操作完成后,才继续执行后续代码,在这期间只有EEPROM的读写电路工
[单片机]
STM32单片机内部EEPROM的读写
STM32L系列单片机内部提供了EEPROM存储区域,但实质上,其FLASH也是EEPROM类型,只不过有一块区域被开放出来专门用作EEPROM操作而已。STM32L的EEPROM使用寿命设计为100000次擦写以上,容量为2K-4K,这对于一般设备的参数存储来说是非常理想的。但从EEPROM使用方式看,其不适用于被反复修改的数据存储使用,一般作为配置参数,其修改次数往往是比较少量的。 STM32L的EEPROM和FLASH是统一编址,操作共用同一个读写电路,所以在EEPROM读写的时候STM32L核对于FLASH的一切访问和操作都将暂停,只有当EEPROM的操作完成后,才继续执行后续代码,在这期间只有EEPROM的读写电路工
[单片机]