×
单片机 > 单片机程序设计 > 详情

有关I2C占空比寄存器设置问题

发布时间:2020-05-27 发布时间:
|
疑问:

-----------------------------------------------------------------------
I2C0SCLH = (Fpclk/fi2c + 1) / 2; 
I2C0SCLL = (Fpclk/fi2c)/2;
在I2C0SCLH = (Fpclk/fi2c+ 1) / 2;里,

为什么是Fpclk/fi2c + 1而不是Fpclk/fi2c?
-----------------------------------------------------------------------

解答:
***********************************************************************
根据公式:I2SCLH + I2SCLL = Fpclk / Fbit(0)原始公式

在计算机的数字运算中,我们这样做了:

I2SCLH = (Fpclk / Fbit + 1)/ 2(1)

I2SCLL = (Fpclk / Fbit)/ 2(2)

那么I2SCLH + I2SCLL = (Fpclk / Fbit + 1)/ 2 +(Fpclk / Fbit)/ 2(3)在计算机数字运算中两项不能合并

为了证明我们这样做是没有问题的,在这里我们举个例子进行说明:

假设I2SCLH + I2SCLL = Fpclk / Fbit = 5

只有这么做了:

I2SCLH = (Fpclk / Fbit + 1)/ 2 = 3

I2SCLL = (Fpclk / Fbit)/ 2 = 2

才能保证:

I2SCLH + I2SCLL = 5符合原始公式(0)。

如果像疑问中所说的那样,I2SCLH + I2SCLL = (Fpclk / Fbit)/ 2 +(Fpclk / Fbit)/ 2 = 4,那么就和原始公式(0)不符了!

关键字:I2C  占空比  寄存器设置 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会