求教一个简单的i2c协议的问题

2019-07-16 05:02发布

i2c总线中发送字节的程序,标红的地方看不明白额,求指点!


void Send(unsigned char Data)
  {
   unsigned char BitCounter=8;
   unsigned char temp;
   do
     {
   temp=Data;
   Scl=0;
   _nop_();
   if((temp&0x80)==0x80)                                          
      Sda=1;
   else
      Sda=0;

   Scl=1;
   temp=Data<<1;
   Data=temp;
   BitCounter--;
    }
   while(BitCounter);
       Scl=0;
   }




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
A670521546
1楼-- · 2019-07-16 06:30
判断最高位是否为1,为1,则 Sda=1;,否则 Sda=0;
lovedollar
2楼-- · 2019-07-16 07:09
A670521546 发表于 2012-7-28 01:11
判断最高位是否为1,为1,则 Sda=1;,否则 Sda=0;

这个我是知道,只是不知道为什么要写这步额
lstcspring
3楼-- · 2019-07-16 08:27
因为串行数据是按位取出来发送的
lovedollar
4楼-- · 2019-07-16 09:51
 精彩回答 2  元偷偷看……
ZOU753951
5楼-- · 2019-07-16 11:31
龙行天下913
6楼-- · 2019-07-16 17:27
对我很有帮助,顶一个

一周热门 更多>