查看: 1826|回复: 0

STM32F107VC金龙开发板 第十二章 金龙107——24C02(IIC_ EEPROM)

[复制链接]

该用户从未签到

发表于 2015-4-16 16:53:58 | 显示全部楼层 |阅读模式
分享到:
第十二章 金龙107——24C02IIC_ EEPROM
12.1 IIC简介:
图片8.png (InterIntegrated Circuit)总线是一种由NXP (PHILIPS )公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、IC IC 之间进行双向传送,传输速率在标准模式下可达100kbps,快速模式下可达 400kbps 图片8.png 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
    开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。
    结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。
    应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。 CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号, CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
    这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。
图片7.png
掌握 图片8.png 的协议层才是掌握 图片8.png 总线的关键,至于物理层在上文已有简单介绍。
1) 数据的有效性
      在时钟高电平期间,SDA线上的数据必须保持稳定,数据线仅可在SCL为低电平时改变。
                  图片6.png
2) 起始和结束条件
SCL为高电平时,SDA上由高到低跳变被定义为起始条件;
SCL为高电平时,SDA上由低到高跳变被定义为结束条件,总线在起始条件之后被视为忙状态,在停止条件之后被视为空闲状态。
图片5.png
3) 应答
每当主机向从机发送完一个字节的数据,主机总是需要等待从机给出一个应答信号以确认从机是否接受到数据。从机应答主机所需的时钟仍是主机提供。
图片4.png
         
12.2实验说明:
    本节进行的实验设计是用STM32F107VC24C02 图片8.png 通信方式进行读写操作,并通过串口
在本实验中,主要跳线帽: JP10JP11JP4JP7都接在2-3上,
12.3硬件说明:
    AT24C02是带有I2C总线接口的E2PROM存储器,具有掉电记忆的功能,并且可以象普通RAM一样用程序改写。它的容量是256个字节(00h0ffh),有A2A1A0三位地址,可见I2C总线上可以连接8AT24C02,它的寻址字节是1010 A2A1A0 R/W。下图是金龙107板上24C02的电路连接:
       图片3.png
12.4程序说明:
    本实验的重点在于IIC的配置,我们要用到IIC,那肯定要对它进行相应的初始化,主要在这个I2C_ee.c文件里。
IIC的初始化
图片2.png
编写相关初始化函数之后,然后要编写eeprom读写操作的函数。这里用到了两个读写的函数void I2C_EE_BufferWrite(uint8_t* pBuffer, uint8_t WriteAddr, uint16_t NumByteToWrite),void I2C_EE_BufferRead(uint8_t* pBuffer, uint8_t ReadAddr, uint16_t NumByteToRead)
第一个入口参数是指针* pBuffer,指向包含被写入到EEPROM中的数据的缓冲区,第二个是你要写/读的地址,最后一个是要写/读的字节数。
12.5实验现象:
下载程序,复位运行,连接上串口线至J3,设置好串口调试助手,注意JP6要短接才能正常通讯。
图片1.png

回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条



手机版|小黑屋|与非网

GMT+8, 2024-4-30 14:39 , Processed in 0.124151 second(s), 16 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.