stm32读取eeprom问题 [问题点数:90分]

Bbs1
本版专家分:0
结帖率 0%
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs5
本版专家分:2600
Blank
红花 2018年12月 VC/MFC大版内专家分月排行榜第一
2018年11月 VC/MFC大版内专家分月排行榜第一
2018年10月 VC/MFC大版内专家分月排行榜第一
2018年9月 VC/MFC大版内专家分月排行榜第一
2018年8月 VC/MFC大版内专家分月排行榜第一
2018年5月 VC/MFC大版内专家分月排行榜第一
2018年4月 VC/MFC大版内专家分月排行榜第一
2018年3月 VC/MFC大版内专家分月排行榜第一
2018年2月 VC/MFC大版内专家分月排行榜第一
2018年1月 VC/MFC大版内专家分月排行榜第一
2017年12月 VC/MFC大版内专家分月排行榜第一
2017年11月 VC/MFC大版内专家分月排行榜第一
2017年7月 VC/MFC大版内专家分月排行榜第一
2012年7月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2018年7月 VC/MFC大版内专家分月排行榜第二
2018年6月 VC/MFC大版内专家分月排行榜第二
2017年9月 VC/MFC大版内专家分月排行榜第二
2017年8月 VC/MFC大版内专家分月排行榜第二
2017年4月 VC/MFC大版内专家分月排行榜第二
2017年3月 VC/MFC大版内专家分月排行榜第二
2017年2月 VC/MFC大版内专家分月排行榜第二
2016年8月 VC/MFC大版内专家分月排行榜第二
2016年7月 VC/MFC大版内专家分月排行榜第二
2016年6月 VC/MFC大版内专家分月排行榜第二
2015年6月 VC/MFC大版内专家分月排行榜第二
Blank
蓝花 2017年10月 VC/MFC大版内专家分月排行榜第三
2017年6月 VC/MFC大版内专家分月排行榜第三
2017年5月 VC/MFC大版内专家分月排行榜第三
2016年9月 VC/MFC大版内专家分月排行榜第三
2016年4月 VC/MFC大版内专家分月排行榜第三
2015年4月 VC/MFC大版内专家分月排行榜第三
2012年8月 VC/MFC大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs1
本版专家分:50
Bbs2
本版专家分:110
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs2
本版专家分:110
Bbs1
本版专家分:0
STM32系统学习——I2C (读写EEPROM)
I2C 通讯协议(Inter-Integrated Circuit)引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。 在计算机科学里,大部分复杂的<em>问题</em>都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32 标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也以分层的方式来理解,最基本的是
stm32开机时,在eeprom读取存储的内容,发送给DGUS屏进行显示数据,但是第一个数据显示是0
<em>stm32</em>开机时,在<em>eeprom</em><em>读取</em>存储的内容,然后用串口发送给DGUS屏的变量地址进行显示数据,但是第一个数据显示是0,而且之前发送接收数据时串口通信都不存在<em>问题</em>。通过测试<em>eeprom</em>读数据是成功的,但是为什么DGUS屏显示的第一个数据会失败呢? 第一点,有可能是变量地址写错了, 第二点,有可能是串口传输的<em>问题</em>, 第三点,有可能是dgus屏接收显示数据太慢。 经过咨询DGUS屏的客服,客
【菜鸟入门】stm32eeprom
楼管大叔来催了,实验室要关门了,我今天就先把代码放着了,后期再做详细说明: /* at24c02.c */ #include #include "init.h" #include "iic.h" #define send_slave_addr(a) iic_send_byte(a) #define send_rom_addr(a) iic_send_byte(a) #define ROM_
STM32模拟I2C时序读写EEPROM精简版
平台:STM32ZET6(核心板)+ST-LINK/V2+SD卡+USB串口线+外部EEPROM(不需要上拉电阻) 工程介绍:主要文件在USER组中,bsp_i2c_ee.c,bsp_i2c_ee.h,bsp_<em>eeprom</em>.c,bsp_<em>eeprom</em>.h和main.c,其中bsp_i2c_ee.c中主要时基本的模拟I2C时序,而bsp_<em>eeprom</em>.c中主要利用前一个文件中定义的基本操作,进行
10.STM32中用I2C接口发送数据到EEPROM寄存器在从此寄存器读数据
10.STM32中用I2C接口发送数据到EEPROM寄存器在从此寄存器读数据.
做EEPROM的测试中发现一些奇怪问题。器件读写地址不唯一。
在做EEPROM的AT24Cxx实验中发现对芯片读写地址的不唯一<em>问题</em>。测试主要针对AT24C02和AT24C1024两款芯片进行测试,采用的是官方固件库的硬件I2C编程。
STM32F10x_硬件I2C读写EEPROM(标准外设库版本)
Ⅰ、写在前面 上一篇文章是“STM32F10x_模拟I2C读写EEPROM”,讲述使用IO口模拟I2C总线通信,对EEPROM(AT24Xxx)进行读写操作的过程。 上一篇文章主要内容:I2C协议、模拟I2C底层驱动、EEPROM(AT24Xxx)单字节读写操作。 本文主要内容:STM32硬件I2C详细配置、EEPROM(AT24Xxx)多字节读写操作、ST官方I2C存在<em>问题</em>。   实例
STM32 硬件I2C EEPROM命令解析
STM32 硬件I2C EEPROM命令解析 转载▼     转载自互联网 void I2C_EE_BufferWrite(u8* pBuffer, u8 WriteAddr, u16 NumByteToWrite) {     u8 NumOfPage = 0, NumOfSingle = 0, Addr = 0, count = 0
构建驱动模块2--STM32模拟IIC访问 (AT24C02)EEPROM 操作
            构建驱动模块2-- STM32模拟IIC访问 (AT24C02)EEPROM 操作         模拟IIC接口可以使用任意两个IO口实现,不受芯片引脚限制,而且硬件IIC在通信出错后,无法自行恢复,模拟IIC则可以迅速恢复;通过调整延时参数,可以调节访问速度。本程序把模拟II2C封装成一个模块,AT24C02只需要调用该模块即可。 1、初始化EEPROM设备。调用...
EEPROM读写(可自动跨页,解决“上卷”)
EEPROM读写(可自动跨页,解决“上卷”现象)
STM32:I2C接口读写EEPROM(AT24C02)试验例程
硬件平台:<em>stm32</em>f10xZET6 开发环境:keil MDK uVisionv4.10 开发语言:C、ST_lib_3.5固件库 EEPROM:电可擦可编程只读存储器。 【<em>stm32</em>f10xZET6开发板的I2C外设物理层特点】 (1)两条串行总线:一条双向数据线(SDA),一条时钟线(SCL); (2)从设备地址唯一; (3)支持总线仲裁; (4)三种速率传输模式:
EEPROM数据丢失的原因与对策
EEPROM 数据被破坏的主要原因有:   1、电源异常使EEPROM的数据彻底丢失;   2、复位不好和软件跑飞可能会使EEPROM的数据被改写。 要防止EEPROM数据被破坏,主要在以下几方面做工作: 1、选用比MCU的电源范围宽并有WP引脚的EEPROM芯片; 2、做好电源滤波,而且要等电源开机稳定后才去读写EEPROM; 3、
stm32L152 使用内部内部flash做EEPROM 出FLASH_ERROR_WRP问题及解决办法
最近做个modbus网关,用到的MCU是<em>stm32</em>L152,这个项目是和别人合作,我做顶层的算法和从机协议,从机读回来的数据要存到外部flash中,而外部flash的索引地址要保存到内部的<em>eeprom</em>中,底层驱动合作方已经写好了,直接拿来使用。测试代码如下:  FLASH_Status writeEEPROMByte(uint32_t address, uint8_t data) {
记一次“粗暴”的Flash模拟EEPROM法(用的STM32F030C6芯片,没找到模拟EEPROM库函数)
记一次“粗暴”的Flash模拟EEPROM法         有个项目用的STM32F030的芯片,有2个参数需要存储,但是画板子的时候没有外加FLASH或24C02芯片。像平时用的多的STM32F1芯片,有专门的flash模拟<em>eeprom</em>库函数,直接调用库函数用用就好了。我在网上找了许久,也没找到STM32F0对应的库函数,而且我还是用的HAL库。         单片机内部是NORflash,...
利用STM32的FLASH模拟 EEPROM(F103)系列
       STM32的FLASH是用来存储主程序的,ST公司为了节约成本,没有加入 EEPROM,但是许多场合下我们需要用EEPROM;不过FLASH的容量还是可观的,我们可以利用FLASH模拟EEPROM。      根据《STM32F10X闪存编程》中的介绍,FLASH除了保存用户代码的部分,其余部分我们是可以利用其作为数据存储使用的。<em>stm32</em>的FLASH分为主存储块和信息块。主存储块用...
EEPROM常见的读写问题和防止办法
在项目开发中经常使用到EEPROM,现在把自己开发中曾经遇到的陷阱和自己的解决方法列出。(1)现象:加密型遥控器的ID自动丢失和改变。         原因:在更新EEPROM过程中,断开电源。         解决方法:        a.更改设计避免在写入EEPROM过程中断开电源;        b.增加100uF的电容,断电后瞬间维持EEPROM供电正常至EEPROM写入完成。
HAL库 EEPROM字符串读写
配置I2C 和串口 串口的配置就不做详细介绍   1 #include &quot;<em>stm32</em>f1xx_hal.h&quot; 2 #include &quot;Eeprom.h&quot; 3 #include &quot;string.h&quot; 4 extern I2C_HandleTypeDef hi2c1; 5 /*------д×Ö·û´®µ½EEPROMÖÐ*/ 6 void I2C_eepWritePage(u...
stm32Flash模拟eeprom心得(原创)
http://wenku.baidu.com/link?url=yAugWD5dBorILs9s_QJoLwjkUNPrE0vkQu0tmknM8xwur8JOZjnxV4pV3lsP8LJH_18RGPE3BflvCIyo0sYwMIsI8BXkhtwc1o9OFvk2-ye&qq-pf-to=pcqq.discussion
第23章 I2C—读写EEPROM—零死角玩转STM32-F429系列
第23章     I2C—读写EEPROM 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege     本章参考资料:《STM32F4xx 中文参考手册》、《STM32F4xx规格书》、库帮助文档《<em>stm32</em>f4xx_dsp_stdperiph_lib_um.chm》及
转【Nucleo心得】+ STM32L系列单片机内部EEPROM的读写
STM32L系列单片机内部提供了EEPROM存储区域,但实质上,其FLASH也是EEPROM类型,只不过有一块区域被开放出来专门用作EEPROM操作而已。STM32L的EEPROM使用寿命设计为100000次擦写以上,容量为2K-4K,这对于一般设备的参数存储来说是非常理想的。但从EEPROM使用方式看,其不适用于被反复修改的数据存储使用,一般作为配置参数,其修改次数往往是比较少量的。 STM3...
STM32F10X FLASH模拟eeprom心得(原创)
花了几天时间研究<em>stm32</em>用Flash模拟EEPROM的<em>问题</em>,终于彻底弄懂了这种机制,下面将我学习的思路简单整理一下,希望能帮助到需要的人。
STM32的内部闪存(FLASH) 用来做EEPROM保存掉电数据
转载网址:http://blog.csdn.net/weizhen1990/article/details/30271261STM32 本身没有自带 EEPROM,但是 STM32 具有 IAP(在应用编程)功能,所以我们可以把它的 FLASH 当成 EEPROM 来使用STM32 FLASH 简介不同型号的 STM32,其 FLASH 容量也有所不同,最小的只有 16K 字节,最大的则达到了10...
(学习笔记3)STM32F429库函数之I2C读取EEPROM
I2C外设通信发送过程中的标志清零一开始真的很困扰人。。
读写Eeprom
使用I2c协议读写Eeprom的例子 Eeprom是一种可擦除反复编程的存储器,掉电也可以保存里面的数据不会丢失,可多次循环编程利用。接下来我们就是要用I2c协议读写Eeprom了。 我们先看一下Eeprom读写时讯,同样在最后我会放出我们读写完Eeprom后,逻辑分析仪出现的结果然后一一分析是为什么. 首先根据I2c配置初始化使能引脚、时钟。里面还包括写一个字节。代码如下。PS(调用的i2
单片机读取EEPROM(AT24C02)
单片机<em>读取</em>EEPROM(AT24C02) 作者:Changing发表时间:05-18 13:30分类:电子相关No Comments       在 arm cortex-m3中 有专门的断电保护寄存器(BKP寄存器) ,在主电源切断或系统产生复位时间时,BKP寄存器仍然可以再备用电源的支持下保持其内容。在实际应用中可以存入重要数据,防止被恶意查看,或用
STM32芯片片内FLASH模拟EEPROM实验
STM32本身没有自带EEPROM,但是STM32具有IAP(在应用编程)功能,所以我们可以把它的FLASH当成EEPROM来使用。本章,我们将利用STM32内部的FLASH来实现第二十八章类似的效果,不过这次我们是将数据直接存放在STM32内部,而不是存放在W25Q64。本章分为如下几个部分: 39.1 STM32 FLASH简介 39.2 硬件设计 39.3 软件设计 39.4 下载验
RT-Thread使用I2C读写eeprom例程(24c02)
实验准备: 开发板:正点原子探索者 RT-Thread源码 env工具 env配置: 使能相关的uart,用于打开控制台 打开I2C设备:   实验源代码: #include &amp;lt;rtthread.h&amp;gt; #include &amp;lt;rtdevice.h&amp;gt; #ifndef EEP_I2CBUS_NAME #define EEP_I2CBUS_NAME ...
硬件IIC驱动EEPROM的写入的数据读出来一直是0Xff的问题
发现是芯片的<em>问题</em>,我用的是24LC512,它的写入时序是要发送16位的地址,之前只发8位的,结果导致写入的地址跟读出来的地址不一样了,芯片没有写入数据之前都是0xFF...
STM32的EEPROM烧写和读取
基于MDK的关于STM32的EEPROM烧写和<em>读取</em>的整个工程。
STM32的FLASH模拟EEPROM程序,亲测可用
STM32的FLASH模拟EEPROM程序,亲测可用。内有详细注释和说明文档,很好的参考资料。
EEPROM分页写数据的理解
EEPROM分页写数据的理解
STM32使用模拟IIC实现24C02读取
1.与硬件IIC的比较 1.1.使用灵活 可使用任意2个IO口实现,不用受芯片管脚限制; 1.2.速率快 通过调整延时,可以实现超过400k的速率,实际测试最大速率接近800k; 1.3.容错性强 硬件IIC在通信出错后,无法自行恢复,模拟IIC则可以迅速恢复; 2.底层接口函数 2.1. I2C_Start 2.2. I2C_Stop 2.3. I2C_SendACK
最完美的STM32读写I2C EEPROM驱动
目前网上能找到的最完美的STM32读写EEPROM驱动,硬件I2C中断加DMA方式!用24C16测试通过!
STM32学习笔记一一FLASH 模拟 EEPROM
1. 简述 STM32 本身没有自带 EEPROM,但是 STM32 具有在应用编程(IAP:In Application Programming)功能,可以把它的 FLASH 当成 EEPROM 来使用。 不同型号的 STM32,其 FLASH 容量也有所不同,最小的只有 16K 字节,最大的则达到了1024K 字节。MiniSTM32 开发板选择的 STM32F103RCT6 的 FLASH ...
stm32 片上flash用作EEPROM(掉电保存)(绝对可用)
#if !defined  (_FLASH_H) #define _FLASH_H #define FLASH_ADR 0x08010000  //要写入数据的地址 #define u8 INT8U #define u16 INT16U #define u32 INT32U union union_temp16 {     unsigned int un_temp16;
关于存储float浮点数到flash或eeprom中的方法
float 单精度浮点数占用32bit空间,不像存储整型或char型数据那么便捷,我们在存储float数据时就需要先将float数变换一下,变换成数组的格式,这样就方便存储和<em>读取</em>了,具体实现有以下方法:第一种存储方式(取地址法):  uint8_t datatmp[4]; //定义数组 因为float数据 占4个字节 float s; //这是...
STM32之FLASH模拟EEPROM学习笔记
 Keil中Code,RO-data,RW-data,ZI-data的说明 Code为程序代码部分 RO-data表示程序定义的常量const temp; RW-data表示已初始化的全局变量 ZI-data表示未初始化的全局变量 Program Size: Code=18248 RO-data=320 RW-data=260 ZI-data=3952 Code,RO-data,RW-...
STM32F103 Flash 模拟EEPROM
STM32F103 Flash 模拟EEPROM
也谈STM32PVD管理--结合内部EEPROM(原创转载请注明出处)
最近项目需要用到掉电存储,想到用PVD来保存数据指针,数据量很小,一个word型数据。保存到内部EEPROM区,不用外接资源,很方便。<em>stm32</em>PVD的介绍我就不多说了,大家看手册都明白。注意说说实现过程及配置时的关键注意点。使用STM32CUBE软件(4.25.1版本),点开自己选中的芯片,pinout页面选择  SYS--power voltage detector in 最后一项intern...
EEPROM读写问题
最近用Mega16做一个步进电机的项目,以后把项目全部的内容贴上来跟大家分享呵呵,现在讨论一个防止EEPROM读写出错的小办法,我编写熔丝位是用AVRstudio里面的Jtag下载功能来烧熔丝位的,连上Jtag,AVRstudio的Jtag功能fuse选项里,把熔丝位中的Preserve EEPROM memory through the Chip Erase cycle钩上,Brown-out
嵌入式stm32学习:I2C-读写EEPROM
bsp_i2c_gpio.h #ifndef _BSP_I2C_GPIO_H #define _BSP_I2C_GPIO_H #include &quot;<em>stm32</em>f4xx.h&quot; #include &amp;lt;inttypes.h&amp;gt; #define EEPROM_I2C_WR 0 /* 写控制bit */ #define EEPROM_I2C_RD 1 /* ...
初学24CXX系列EEPROM使用详解&STM32库函数I2C总线
      24CXX系列芯片属于EEPROM(Electrically Erasable Programmable read only memory)即电可擦可编程只读存储器,是一种掉电后数据不丢失(不挥发)存储芯片。       24CXX系列芯片数据说明:见下表(只做参考,只表明常用24CXX器件的常用数据,具体使用请查阅器件数据手册): 如24C02BN容量=2KB,但写缓冲区(页容量)=...
STC15W4K16S4的串口读写EEPROM数据例程
参考STC公司例程,编写模块化的驱动文件,实现串口<em>读取</em>单片机片上EEPROM。
STM32CubeMX学习教程之十:硬件I2C读写AT24C02
完整源码下载: https://github.com/simonliu009/STM32CubeMX-hardware-I2C-AT24C02 网上有流传已久一种说法,就是STM的I2C有bug,不好用。确实很多人在实际应用中都遇到了各种<em>问题</em>,所以绝大部分人都是在用软件模拟IIC。 有了STM32CubeMX,我们可以尝试使用硬件I2C了,官方的优化总不会有错了吧?(其实还是有个小bug,不...
【程序】STM32使用SPI接口读取93C46存储器上的数据(非软件模拟SPI时序)
/* 93C46选默认的16位模式,但SPI总线上每次发送/接收8位数据 */ #include #define _BV(n) (1 << (n)) uint8_t id = 0; uint16_t num = 0; const uint8_t seg8[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; vo
STM32 使用模拟I2C读写EEPROM,很有参考价值
STM32模拟I2C读写EEPROM,经过实际项目验证OK,值得大家参考~
利用加密芯片SMEC98SP设计可加密的EEPROM保存加密数据
在产品设计中,经常需要保存加密数据,防止被别人非法<em>读取</em>,对产品、系统的安全性有威胁。传统的EEPROM,如AT24C02,无法满足这个需求,加密芯片SMEC98SP可以很好的解决这个<em>问题</em>。 首先,用加密芯片SMEC98SP设计完主控芯片MCU的加密防护,使系统MCU得到很好的保护,再增加加密EEPROM的功能。SMEC98SP有8K的数据空间,相当于AT24C64,外部单片机通过IIC可对SME...
LPC1788内部EEPROM使用的问题
最近使用LPC1788内部EEPROM存储数据时候发现<em>问题</em>:LPC1788的EEPROM扇区只有 0-62 63扇区不存在 uint32_t i, j; uint8_t count; uint8_t error = 0; debug_frmwrk_init(); _DBG(menu); EEPROM_Init(); count = sizeof(write
延长FLASH和EEPROM芯片写入次数的小方法
开发电子产品时,常常需要断电后保存某些数据,这就需要使用FLASH或EEPROM芯片,这两种芯片,可擦除的次数是有限制的,通常FLASH为10万次,EEPROM要多一点,为100万甚至1000万次。FLASH的擦除不能单个字节进行,有一个最小单位,存储容量相对比较大,适合大量数据的存储;EEPROM可以单个字节进行擦除,存储容量不大,只适合存储少量的设置数据。         先以FLA
SMT32内部flash读写操作,从此告别外部flash,eeprom
因为SMT32内部flash有512K,这么大的空间用来存程序的只有前面的一小段,平时我们跑裸机程序根本不可能用到这么多空间,何必不利用起来,节约外设的电子元器件呢,本例子通过解锁SMT32内部FLASH,来存储我们的数据
操作EEPROM时触发ECC内部故障导致通信失败
This example simulates ECC issue by cumulative write into the same EEPROM area without an erasing.   The EEPROM erase operation set all bits into log1. The EEPROM program operation may keep bit
EEPROM的用途简述,在单片机中。
假设有的数据很重要,所以必须找个地方永久保存,以便单片机在断电后又上电时以这个数据为基础继续运行,但是有时根据实际情况会调整这数据的值。所以这数据能保存在Flash中吗?肯定不行,单片机在运行的时候是肯定不能修改Flash中的数据的,这好比是一个人在清醒的时候给自己做心脏的手术,危险度很高!所以可以将这数据保存在EEPROM中,这样断电后不会丢,也可以在根据需要时进行修改。比如让单片机计算Z=A*...
14.5 EEPROM多字节读写时序
我们<em>读取</em> EEPROM 的时候很简单,EEPROM 根据我们所送的时序,直接就把数据送出来了,但是写 EEPROM 却没有这么简单了。给 EEPROM 发送数据后,先保存在了 EEPROM的缓存,EEPROM 必须要把缓存中的数据搬移到“非易失”的区域,才能达到掉电不丢失的效果。而往非易失区域写需要一定的时间,每种器件不完全一样,ATMEL 公司的 24C02 的这个写入时间最高不超过 5ms
STM32F10x硬件I2c读写AT24c02,程序卡死
硬件I2C。一直是卡死在while等待; while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)); while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)); while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED));
I2C总线 驱动程序设计 --- EEPROM 驱动设计
I2C总线 驱动程序设计 --- EEPROM 驱动设计
stm32的备份寄存器能否当EEPROM来用?
突然想到<em>stm32</em>的备份寄存器能否当EEPROM来用这个<em>问题</em>。百度了一把,答案是不行的。 因为是EEPROM是不需要任何电的,而<em>stm32</em>的备份寄存器是靠TC电池. 首先 检查RTC电池是否装载,没电池的话,设备掉电也保存不了数据。备份寄存器就是普通的RAM,需要配合外接电池使用,如果没有电池,就不能掉电保持数据。因为是普通RAM,所以不存在写入次数的<em>问题</em>,理论上是无限次的。
EtherCAT主站SOEM源码解析----EEPROM访问
SOEM(Simple Open EtherCAT Master)是一个开源的EtherCAT主站。 本文介绍其中<em>读取</em>从站EEPROM信息的步骤。 1、ESC EEPROM访问控制寄存器从站控制芯片ESC EEPROM控制寄存器如下: 2、读EEPROM步骤 读的一般步骤为: (1) <em>读取</em>EEPROM控制/状态寄存器0x0502:0x0503的内容,确认EEPROM没有处于Busy状态
【STM32】使用STM32cubeMX的库读写FLASH数据
做项目时有时候需要对一些数据进行掉电可存储,一般来说可以把这些数据存储到到EEPROM或FLASH,这次项目中我使用到的芯片是STM32F051C8T6,只有64KB的FLASH,没有EEPROM。这个时候就需要考虑FLASH的读写操作。
EEPROM烧录原理
EEPROM(Electrically Erasable programmable Read-only Memory):紫外線編程可擦除式只讀存儲器,用於擴展程序存儲器.我們目前測試中用到的<em>eeprom</em>是使用chip select(SC),serial clock(CLK),data in(DI),data out(DO)四個腳位來完成Memory data之讀寫,Organization(ORG)腳位可決定IC為8bit/16bit讀或寫. 現今大部分之應用,是將Mac address寫入serial <em>eeprom</em>,以供網絡連接使用.
AT24C32读取数据一直为0xFF
AT24C02程序可读可写,并且读写的数据都正确。采用AT24C32时,先写入数据,再读出数据一直为0xFF。 修改u8 AT24CXX_ReadOneByte(u16 ReadAddr)和void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite),将程序改为 if(EE_TYPE>AT24C16) { IIC_Send_Byte(0XA
EEPROM存储复杂的数据
EEPROM里面存储的东西可不止短整型这一种,可能是char,可能是long,可能是array,甚至可能是一个struct。 那难道需要针对每一种数据类型做一个读写函数? 但是现实当中,我们需要在EEPROM里面存储的东西可不止短整型这一种,可能是char,可能是long,可能是array,甚至可能是一个struct。 那难道需要针对每一种数据类型做一个读写函数?这里我做了一套读写函数,可以适应任
关于STM32F407开发板的几种内存总结,SRAM,FLASH,EEPROM
先抄一抄网上的关于SRAM,FLASH,EEPROM的介绍常见存储器概念:RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash存储器可以分为很多种类,其中根据掉电数据是否丢失可以分为RAM(随机存取存储器)和ROM(只读存储器),其中RAM的访问速度比较快,但掉电后数据会丢失,而ROM掉电后数据不会丢失。可以知道SRAM属于RAM,掉电后数据丢失;FLASH和EEPROM属于...
使用I2C读写EEPROM流程总结
1、配置I/O端口,确定并配置I2C的模式,使能GPIO和I2C时钟2、写    1)检测SDA是否空闲    2)按I2C协议发出起始信号    3)发出7位器件地址和写模式    4)要写入的存储区首地址    5)用页写入方式或字节写入方式写入数据    6)发送I2C通信结束信号3、读    1)检测SDA是否空闲    2)按照I2C协议发出起始信号    3)发出7位器件地址和写模式 ...
STM32 FLASH模拟EEPROM
基于STM32 HAL库的 flash 模拟 EEPROM 实例,工程使用IAR EWARM7.60平台编译,如果使用低版本的IAR 平台打开可能会有警告提示,实例来自真实项目的一个温度控制子系统,mcu使用了<em>stm32</em>f103tb。
STM32矩阵键盘 EEPROM OLED 综合代码源程序 亲写 亲测 可用
STM32矩阵键盘 EEPROM OLED 综合代码源程序 亲写 亲测 可用...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
单片机控制IIC协议EEPROM芯片24C512之模块化编程(持续更新中)
这里将我编写的STC12C5A60S2单片机控制EEPROM芯片AT24C512的程序共享一下,是希望前辈们给予斧正 。
STC15F2K60S2内部EEPROM的读写操作
一、STC15F2K60S2单片机内部EEPROM的介绍 STC15系列单片机内部集成了大容量的EEPROM,其与程序空间是分开的。利用ISP/IAP技术可将内部Date Flash当EEPROM,擦写次数在10万次以上。EEPROM可分为若干个扇区,每个扇区包含512个字节。使用时,建议同一次修改的数据放在同一个扇区,不是同一次修改的数据放在不同的扇区,不一定要用满。数据存储器的擦出操作是按扇...
STM32读写内部flash
概念:计算机中最小的信息单位是bit,也就是一个二进制位,8个bit组成一个Byte,也就是1个字节,1个存储单元存放1个字节,每个存储单元对应一个32位(bit)地址,所以重要的话说三遍:对于32bit的ARM CPU一个32位地址指向1个字节!!!  一个32位地址指向1个字节!!!   一个32位地址指向1个字节!!!我们常说的flash空间,多少多少K,指的是多少多少K byte 我使用的...
EEPROM 25LC256读写源码 C++
25LC256的IO口模拟读写源码.SPI协议,C++源码.可以直接复制使用
EEPROM—_IIC总线编程,用按键控制IIC写入读取数据并由数码管显示
关于IIC串行总线的组成及工作原理 1.采用串行总线技术可以使系统的硬件设计大大简化,系统的体积减小,可靠性提高,同时,系统的更改和扩充极为容易。 2.常用的串行扩展总线有:IIC(Inter IC BUS)总线、单总线,SPI总线及Microwire、PLUS 3.IIC是一种串行总线,只有两根双向信号线: ...
STM32F103 I2C 宕机的问题
项目中遇到,用I2C进行读写IC数据,有时候I2C线没接好,特别是GND没共的时候,I2C会卡死在: 类似:I2C_WaitOnTXEFlagUntilTimeout 这种函数中,原因: if((Timeout == 0) || ((HAL_GetTick()-tickstart) > Timeout)) HAL_GetTick的值永远不递增了,因为SysTick_Handler中断不
eeprom读写
#define EEP_MAX_PAGE_SIZE 32 // 最大页写字节数 #define EEP_MAX_ROM_SIZE 8192 // EEROM容量 #define EEP_ADDR_SIZE 2 // EEROM地址字节数 #define EEP_WRITE_DELAY_TIME (OS_TICKS_PER_SEC/10) #define SYS_H
float型数据写入eeprom,以及对eeprom操作的注意事项
做项目需要将float型数据存到单片机自带的<em>eeprom</em>里,单片机型号是STC12C5A60S2。不过每次只能对一个字节进行操作即unsigned char型。之前存过unsigned long型的其实是一样的他们都要占用四个字节。可以用联合的方法,这里提供个简单的程序,直接贴代码:/***************************存取浮点数*************************
【程序】STM32使用SPI接口操作93C46存储器(非软件模拟)
/* 93C46选默认的16位模式 */ #include #define _BV(n) (1 << (n)) #define CS_0 (GPIOA->BRR = GPIO_BRR_BR3) #define CS_1 (GPIOA->BSRR = GPIO_BSRR_BS3) uint8_t id = 0; uint16_t num = 0; const uint8_t seg8[] =
治标治本,彻底解决AVR单片机EEPROM数据丢失问题
在项目中复制出来的程序,使用时可能有些地方需要修改。  编译环境:WinAVR-20060421 + AVR Studio 4.12.498  Service Pack 4  基本思路:每份写到EEPRM的数据,都做三个备份,每个备份的数据都做CRC16校验,只要系统运行中出错,错误地修改了EEPROM数据,            那么根据校验字节就知道哪个备份的数据被修改了,然后用
E2PROM的原理及使用
一、上拉电阻 1.定义:将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。 如下图所示, 2.上拉电阻的作用 a.让引脚在悬空的状态下(开漏)有确定的电平。 b.增加驱动电流。 二、EEPROM 1.定义:电可擦除可编程只读程序存储器。 2.特点:内存小,只能存储简单数据,掉电非易失。 3.时序图 a》AT24C02写入一个字节 b》AT24C02写
24c01~24c1024全系列EEPROM的读写程序
http://blog.21ic.com/user1/3397/archives/2006/30969.html
Linux下的eeprom读写操作
利用Linux内核自带的IIC总线驱动,按系统提供的框架,用ioctl方法对<em>eeprom</em>设备进行读写操作,并分别按单字节及多字节读写方式,对外提供函数接口,以供外部程序方便调用。   程序由3个文件组成,分别为头文件,函数实现文件,及测试程序。 /* ********************************************************************
经验分享——EEPROM读写及数据管理
1)有关 芯片内部自带的E2PROM 有的资深的工程师可能不是很愿意用MCU自带的E2PROM,大概是这些家伙上过什么当、受过骗还是什么的。简单说一下优缺点吧: (1)片内集成的感觉挺便宜的,和MCU一起卖的,对成本要求严格的,写次数很少的场合一般会考虑,至少能省个2、3毛钱吧; (2)缺点的话,可能擦写次数、稳定性没有外挂的专用芯片厉害; 2)
MCU模拟eeprom基本功能
MCU模拟<em>eeprom</em>基本功能   如果你的MCU的flash足够大。并且你的MCU提供自编程flash指令。则可以通过flash模拟出一片<em>eeprom</em>区域。用于存储数据。        本文参考ST公司的AN2594文档。使用ST提供的范例。旨在了解如何使用Flash模拟出一片<em>eeprom</em>。        由表我们得到擦除时间的比较。内部模拟的显然速度快了。然而我
eeprom分区, 读取MAC地址
#include int  main(void) {         int fd;       int ret;       char mac[6]={0};       char buf[16]={0};       int i;              fd = open(FACT_NAME, O_RDWR, 0666);       if (fd       {
STM32F4系列用Flash模拟Eeprom
STM32F系列没有EEprom,要掉电保存数据,可以用Flash来替代。但一般的使用方法,存在磨损,用这个文档的方法,可以达到最小的磨损,达到最大限度的擦写循环次数。
ft232rleeprom编程工具
改变ft232rl内部的<em>eeprom</em>参数的工具安装文件
更新BeagleboneBlack板子中EEPROM中的ID,使用mm内存修改命令
      购买的原装BBB的板子,EEPROM中写入了板子的ID号。自己新焊接的板子,写入BBB官网下载的镜像,会提示不能通过,或者不能启动系统。可以通过修改uboot源码,去掉校验ID的逻辑,或者通过下面的方式,在新的板子上复制原装板子EEPROM的内容的方法。基本流程如下:1. 在BBB原装板子上,从SD卡启动,进入Uboot,然后<em>读取</em>EEPROM里面的内容。暂时保存。<em>读取</em>EEPROM内容的...
Linux下的eeprom读写操作(IIC)
利用Linux内核自带的IIC总线驱动,按系统提供的框架,用ioctl方法对<em>eeprom</em>设备进行读写操作,并分别按单字节及多字节读写方式,对外提供函数接口,以供外部程序方便调用。   程序由3个文件组成,分别为头文件
(3)LinuxI2C驱动--解析EEPROM的读写
本节介绍<em>eeprom</em>的读写时序,参考的是AT24C01A的datasheet。
STM32和电路结合
漏极开路结构 http://blog.csdn.net/g_salamander/article/details/8016698 http://www.cnblogs.com/emouse/archive/2012/03/19/2406888.html  由于 SDA、SCL 为漏极开路结构,借助于外部的上拉电阻实现了信号的“线与”逻辑;
stm32通过串口更新字库
<em>stm32</em>通过串口下载字库到外部flash,程序编程风格良好。
STM32F103C8T6单片机通过I2C库函数来读写24C02存储器
电路连接:SCL和SDA分别接到PB6和PB7上,并都外接上10kΩ上拉电阻。 笔者的板子上
文章热词 双目视觉问题 特征点问题 相机标定问题 最优化问题 统计学稳健估计问题
相关热词 c c++ stm32 宏定义 stm32 库c++版本 stm32 用c++编写 stm32用c++ 区块链问题 学习python时遇到的问题
我们是很有底线的