【蓝桥杯单片机组】AT2C02 EEPROM
来源:互联网 发布:最新编程语言发展趋势 编辑:程序博客网 时间:2024/04/28 08:57
这个也是iic总线结构!
在此总结一下iic的程序结构
在同一个函数内读、写操作(以读eeprom为例)
(1)开启总线
(2)写地址字,等待回应(写命令)
(3)写要读的地址,等待回应
(4)再次开启总线
(5)写地址字,等待回应(读命令)
(6)读要读的地址
(7)发出回应
(8)结束总线
放上代码:
unsigned char read_eeprom(unsigned char add){ unsigned char dat; IIC_Start();//(1)开启总线 IIC_SendByte(SlaveAddrW);//(2)写地址字,等待回应(写命令) IIC_WaitAck(); IIC_SendByte(add); //(3)写要读的地址,等待回应 IIC_WaitAck(); IIC_Start();//(4)再次开启总线 IIC_SendByte(SlaveAddrR); //(5)写地址字,等待回应(读命令) IIC_WaitAck(); dat = IIC_RecByte();//(6)读要读的地址 IIC_Ack(0);//(7)发出回应 IIC_Stop(); //(8)结束总线 return dat;}
void write_eeprom(unsigned char add,unsigned char dat){IIC_Start();IIC_SendByte(SlaveAddrW);//地址字IIC_WaitAck();IIC_SendByte(add); //传要写的地址IIC_WaitAck();IIC_SendByte(dat); //要写的数字IIC_WaitAck();IIC_Stop();//结束somedelay(10);//适当延时}
现在总结一下I2C官方驱动中的坑:
(1)需要改延时为33个nop
(2)读数据后的主机发出的回应是ack(0)
0 0
- 【蓝桥杯单片机组】AT2C02 EEPROM
- 【蓝桥杯单片机组】DS18B20
- 【蓝桥杯单片机组】外部中断
- 【蓝桥杯单片机组】超声波模块
- 【蓝桥杯单片机组】(1)前期准备
- 【蓝桥杯单片机组】(3)键盘
- 【蓝桥杯单片机组】(6)uart
- 【蓝桥杯单片机组】第七届决赛模拟
- 蓝桥杯大赛单片机组学习笔记,基于stc15f2k61s2转接板
- 【蓝桥杯单片机组】(2)锁存器、数码管、蜂鸣器、继电器
- 【蓝桥杯单片机组】(4)Timer0/1 定时器
- 【蓝桥杯单片机组】(5)Timer0/1 计数器做频率计
- 【蓝桥杯单片机组】实时时钟RTC(DS1302)
- 【蓝桥杯单片机组】PCF8591 关于蓝桥杯坑爹I2C的吐槽
- 【蓝桥杯单片机组】大概是最后一篇了,the lastday 蓝桥
- EEPROM
- EEPROM
- eeprom
- Vscode下快速开始编写html的方法
- 若xcode中,拷贝别人项目,无法捕获断点时,尝试这种方法。
- linux 计划任务
- 建堆和堆排序
- C语言里的str
- 【蓝桥杯单片机组】AT2C02 EEPROM
- c++ this指针
- 慕课网原来的免费路径网址,快收藏
- 关于2的补码
- 判断两棵二叉树是否相同
- ARC项目中使用mrc第三方框架
- vs2012编译protobuf
- 226. Invert Binary Tree
- Android实现抽奖转盘动画