标准的I2C是 50比50 占空比。
好比楼主用的是NXP 的ARM7. 外设是12MHZ.()
那么400KHZ的I2C 的周期是12MHZ/400KHZ=30;
按50:50,
I2C_SCLH = 15;
I2C_SCLL = 15;
假如是29,可以设
I2C_SCLH = 14;
I2C_SCLL = 15;
或
I2C_SCLH = 15;
I2C_SCLL = 14;
都没所谓的。
如果按那个公式,
SCLH = (FCLK/400KHZ+1)/2 = (29+1)/2=15
SCLL = (FCLK/400KHZ)/2 = 29/2 =14
这个楼主就好理解了~哈哈。人为的规定这样。 |