在做I2C实验的时候,对I2C接口的速度设置如下: uint32 I2C0Init(uint32 FI2C,uint8 sladdr,void (*ISRPORT)()) { if(FI2C <= 400000){ PINSEL0 |= SCL0 | SDA0; //定义管脚功能; //创建I2C接收缓冲 QueueCreate(&pI2cReceiveBufQ,&I2cReceiveBuf[0],I2C_RECBUF_LEN,NULL,NULL); I2C0CONCLR = SBIT_AAC | SBIT_SIC | SBIT_STAC | SBIT_I2ENC;//清空控制寄存器. I2C0SCLH = (Fpclk / FI2C + 1) / 2; I2C0SCLL = (Fpclk / FI2C) / 2; I2C0ADR = (uint32)sladdr; I2C0CONSET = ENI2C|ENAA; VICVectCntl14 =EN_IRQslot | VIC_NO_IIC0; VICVectAddr14 = (uint32)ISRPORT; VICIntEnable |= _BV(VIC_NO_IIC0); return TRUE; } else return FALSE;
}
调用的时候我设置了400K,可写入16个字节感觉上要用去3、4秒的时间。。
还有数据手册135页有这样一段话。I2C 接口完全符合整个I2C 规范,支持断开到LPC2141/2/4/6/8 的连接而不影响同一I2C 总线上的其它器件(见“快速模式”标题下的“I2C 总线规范”描述,和微控制器数据手册 中标题为“F/S 模式的I2C 总线器件的SDA 和SCL I/O 特性”的表格注释)
快速模式指的是I2C吗。。在哪可以看到。。?? |