参考文献 MCP4017 datasheet
1.首先确定通信方式: 看其数据手册易得 iic
2.使用的是iic因此比寻找其写命令和读命令,和数据对应的读写方式。

从此可以看出,写命令是0x5E.

读命令则是,0x5F
3.iic与其通信的代码如下
void write_resistor(uint8_t value)
{
I2CStart();
I2CSendByte(0x5E);
I2CWaitAck();
I2CSendByte(value);
I2CWaitAck();
I2CStop();
}
uint8_t read_resistor(void)
{
uint8_t value;
I2CStart();
I2CSendByte(0x5F);
I2CWaitAck();
value = I2CReceiveByte();
I2CSendNotAck();
I2CStop();
return value;
}
ps:代码为国信长天提供的示例代码。
4.如何得出该电阻的阻值
内部原理如下:R(bw)的阻值即为所要求的阻值。

Rs的阻值为 AB之间的总电阻除以127;(0x7f换算成10进制)

其中Rw的阻值几乎为零,可以忽略不计。N为我们写入的数据。Rab为常量。

找到对应的型号,我们可以得出,Rab的值为100000欧姆。

因此当我们写入数据为,127时,此时的电阻阻值为100K欧姆。(0.78740127)K欧姆*
write_resistor(127); //写入数据
MCP4017 IIC通信实例
本文介绍MCP4017通过IIC通信的读写操作方法及阻值计算公式。包括写入命令0x5E与读取命令0x5F的具体实现代码,以及基于写入值计算电阻阻值的过程。
276

被折叠的 条评论
为什么被折叠?



