您好!这个波形是示例程序发出的,请问为什么,在启动标志位后和发的第一个字节之间多了一个0x20的字节?
user4465613:
回复 Tony Tang:
我现在要控制EEPROM ,怎么能去掉这个I2C地址呢?
Tony Tang:
回复 user4465613:
I2C在start后就是会送出 slave地址的啊.
user4465613:
回复 Tony Tang:
我将地址改为如下
/**********************************************************\ Miscellaneous I2C test setup\**********************************************************/
/*macros for assigning addresses to I2C0 and I2C1 */#define I2C0_OWN_ADDRESS (0xa1) //(0x10)#define I2C1_OWN_ADDRESS (0xa1) //(0x20)
输出的地址是0x42
Tony Tang:
回复 user4465613:
数错位了吧,应该是0x21 ,因为默认是7bit地址模式。
user4465613:
回复 Tony Tang:
我现在要读取EEPROM24LC65的内容 24LC65 要求在START后面发送 0xa01 我怎么发送啊
Tony Tang:
回复 user4465613:
我看了一眼24LC65的手册,其读写要求如下,你说的0xAx就是其地址,只是这7位地址占的是1-8bit,bit 0代表读还是写命令。其中地址高4位是固定的,低三位由24LC65的管脚A0-A2上的上下拉状态决定。
对于操作来看说,你只要关心低7位地址就行了,不要人为的去移位,最低位读写的电平由I2CMDR的bit 9决定。
再看C6713的I2C手册,其数据格式如下:
二者是一致的。start后跟着slave地址这是I2C协议规定的。大家必需都要遵守,不然没办法通信了。