关于I2C问题:两个函数有什么不同功能,两个不都是写入函数吗?
时间:10-02
整理:3721RD
点击:
- bit WriteCurrent(unsigned char y)
- {
- unsigned char i;
- bit ack_bit;
- for(i = 0; i < 8; i++)
- {
- SDA = (bit)(y&0x80);
-
- _nop_();
- SCL = 1;
- _nop_();
- _nop_();
-
- SCL = 0;
- y <<= 1;
- }
- SDA = 1;
-
- _nop_();
- _nop_();
- SCL = 1;
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- ack_bit = SDA;
-
- SCL = 0;
- return ack_bit;
- }
- 通过按位“与”运算将最高位数据送到S。
- void WriteSet(unsigned char add, unsigned char dat)
- {
- start();
- WriteCurrent(OP_WRITE);
- WriteCurrent(add);
- WriteCurrent(dat);
- stop();
- delaynms(4);
- }
是为什么要通过按位“与”运算将最高位数据送到S。
WriteCurrent是发送一个字节,一个字节必须按照bit进行高低电平切换
WriteCurrent是发送一个字节。