1.电路图
之前还在纠结,怎么板子上没看到EEPROM,无意间竟然看到例程里有IIC读写,赶紧打开原理图,又查找了一番,终于找到了,采用的依然是经典的AT42C02,这款芯片真是开发板的最爱啊。
以前看开发板的图,都是WP引脚直接接到地上去,这里接到了PF6引脚,应该是从程序里直接置0了。
2.部分源代码
I2C总线的数据传输过程基本过程为:
l 主机发出开始信号。
l 主机接着送出1字节的从机地址信息,其中最低位为读写控制码(1为读、0为写),高7位为从机器件地址代码。
l 从机发出认可信号。
l 主机开始发送信息,每发完一字节后,从机发出认可信号给主机。
主机发出停止信号。
当然了我这些底层的没细看,之前有看过,现在也就抓住应用层的几个函数来做了。
- SoftI2CSCLGPIOSet(&g_sI2C, GPIO_PORTA_BASE, GPIO_PIN_6);///SCL
- SoftI2CSDAGPIOSet(&g_sI2C, GPIO_PORTA_BASE, GPIO_PIN_7);///SDA
复制代码下面就是底层操作里最最重要的两个函数了
- Void AtmelRead(unsigned char *pucData, unsigned long ulOffset,
- unsigned long ulCount)
- //*******************************************************
- // Read from the Atmel device.
- 读数据 ulOffset地址 *pucData 数据指针
- //*******************************************************
- Void AtmelWrite(unsigned char *pucData, unsigned long ulOffset,
- unsigned long ulCount)
- //********************************************************************
- // Write to the Atmel device. 写设备
- //********************************************************************
复制代码
3. 功能及显示
用AT24C02只是做了简单的功能,就是掉电之后在上电,记录上次掉电的次数,然后加1,实现掉电的记录。