模拟I2C读写EEPROM - 笔记
文章平均质量分 73
记录遇到的坑~~
努力的小肥丸
再不快跑,就要迟到了!
展开
-
读写EEPROM失败 - 原因及对策(附代码)
问题现象描述:往EEPROM里写入一个长度为4字节的数据,再从EEPROM读出这个数据的时候, 发现读出来的数据怎么都不对原因分析及解决对策原因1:跨页操作读/写E2。解决对策:不要跨页操作读/写E2,每次操作的E2地址都保证同一页内。原因2:操作读/写E2前,外部中断没有关,导致外部中断被触发,打断读/写E2操作,数据出错。解决对策:在操作读/写E2前,关闭外部中断,等到读/写完成后,再把外部中断打开。代码举例: EXTI->IMR &= ~(EXTI原创 2021-11-12 17:30:31 · 14054 阅读 · 0 评论 -
STM32F10x_模拟I2C读写EEPROM(3)(读写E2备份区 + 校验位 + 完整代码 + 应用实例)
文章目录前言一、宏定义前言关于此文一些名词术语不太理解的,可以去看我这篇博文→ 《STM32F10x_模拟I2C读写EEPROM(1)》模拟I2C读写函数,可以去看我这篇博文→ 《STM32F10x_模拟I2C读写EEPROM(2)(切换SDA方向 + 读ACK位 + 完整代码)》E2的中文资料可以到我博客资源里下载,没有积分下载的,可以评论Ding我o( ̄▽ ̄)ブ一、宏定义 // 此文的E2型号 - AT24C512 // I2C引脚 #define原创 2022-01-07 17:43:19 · 1514 阅读 · 0 评论 -
STM32F10x_模拟I2C读写EEPROM(1)(附时序图)
描述:发送器: 将数据传送到总线的器件接收器: 从总线接收数据的器件主机:一般指MCU从机:此处为EEPROM(后面均简称为E2)主机 写 数据进从机 → 此时发送器为主机,接收器为从机主机 从从机读 数据 → 此时发送器为从机,接收器为主机一个I2C总线只包括两个总线串行数据线(SDA):串行时钟线(SCL) :用来数据收发同步。...原创 2021-12-09 15:27:20 · 2392 阅读 · 0 评论 -
STM32F10x_模拟I2C读写EEPROM(2)(切换SDA方向 + 读ACK位 + 完整代码)
文章目录前言一、I2C延时函数1. 注意二、起始 / 停止信号1. 时序图2. 起始信号3. 停止信号三、切换SDA方向1. SDA配置为输入模式2. SDA配置为输出模式四、应答位信息1. 主机(MCU)读取 应答位六、小结前言关于此文一些名词术语不太理解的,可以去看我这篇博文→ 《STM32F10x_模拟I2C读写EEPROM(1)》一、I2C延时函数1. 注意此函数实现的是非标准延时,请根据MCU速度 调节大小/********************************原创 2021-12-15 17:34:44 · 4948 阅读 · 2 评论