KF32A146之IIC读写外部EEPROM

参考资料:
《KF32A146用户手册》
《AT24C16 Datasheet》
1.实现功能
通过硬件I2C向EEPROM中发送一个或多个字节的数据,并通过CAN报文发出读 取的数据。
2. 硬件设计
采用kungfu的开发板,芯片:KF32A146IQT
使用到的外设及硬件为:CAN,I2C1,EEPROM。
3.配置IIC,使用的是开发板上PF2 PF3 pin,I2C0,复用功能 5(在数据手册可以找到复用功能表)

初始化GPIO:
KF32A146之IIC读写外部EEPROM_第1张图片

初始化I2C0
KF32A146之IIC读写外部EEPROM_第2张图片

4.分析EEPROM读写时序:
KF32A146之IIC读写外部EEPROM_第3张图片

1.START->起始信号
2.DEVICE ADDRESS->设备地址(最低位为读写位,1:读,0:写)
3.ACK->应答信号
4.写地址,就是要把数据写到哪个地址
5.ACK->应答信号
6.数据
7.停止信号

5.EEPROM写函数

KF32A146之IIC读写外部EEPROM_第4张图片

6.EEPROM读函数:
KF32A146之IIC读写外部EEPROM_第5张图片
参考写时序分析,这里就不过多写出来了

KF32A146之IIC读写外部EEPROM_第6张图片KF32A146之IIC读写外部EEPROM_第7张图片
需要注意的是,这个KF32A146的硬件I2C中途如果需要重新发起始信号的话,需要关了I2C,然后再打开

你可能感兴趣的:(I2C,EEPROM,KF32A,c语言,单片机)