微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于I2C问题:两个函数有什么不同功能,两个不都是写入函数吗?

关于I2C问题:两个函数有什么不同功能,两个不都是写入函数吗?

时间:10-02 整理:3721RD 点击:

  1. bit WriteCurrent(unsigned char y)
  2. {
  3.         unsigned char i;
  4.         bit ack_bit;            
  5.         for(i = 0; i < 8; i++)               
  6.         {
  7.             SDA = (bit)(y&0x80);   
  8.                                                
  9.                 _nop_();            
  10.            SCL = 1;               
  11.            _nop_();            
  12.           _nop_();               
  13.                
  14.                   SCL = 0;            
  15.                 y <<= 1;         
  16.         }
  17.         SDA = 1;                       
  18.                         
  19.         _nop_();         
  20.         _nop_();         
  21.         SCL = 1;      
  22.         _nop_();      
  23.         _nop_();      
  24.         _nop_();      
  25.         _nop_();      
  26.         ack_bit = SDA;
  27.                      
  28.         SCL = 0;      
  29.         return  ack_bit;                       
  30. }
  31. 通过按位“与”运算将最高位数据送到S。
  32. void WriteSet(unsigned char add, unsigned char dat)
  33. {
  34.         start();            
  35.         WriteCurrent(OP_WRITE);
  36.         WriteCurrent(add);     
  37.         WriteCurrent(dat);     
  38.         stop();               
  39.         delaynms(4);            
  40. }

复制代码

这两个函数有什么不同功能,两个不都是写入函数吗?

是为什么要通过按位“与”运算将最高位数据送到S。

WriteCurrent是发送一个字节,一个字节必须按照bit进行高低电平切换

WriteCurrent是发送一个字节。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top