IIC_SDA=(txd&0x80)>>7; 改成 IIC_SDA=0x80>>7; 不行吗? 跟之前一样的效果。

2019-07-21 02:31发布

//IIC发送一个字节
//返回从机有无应答
//1,有应答
//0,无应答    
void IIC_Send_Byte(u8 txd)
{                       
    u8 t;  
 SDA_OUT();     
    IIC_SCL=0;//拉低时钟开始数据传输
    for(t=0;t<8;t++)
    {             
        IIC_SDA=(txd&0x80)>>7;    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<这里《《《《《《《《《《《
        txd<<=1;   
  delay_us(2);   //对TEA5767这三个延时都是必须的
  IIC_SCL=1;
  delay_us(2);
  IIC_SCL=0; 
  delay_us(2);
    } 

IIC_SDA=(txd&0x80)>>7;   改成     IIC_SDA=0x80>>7;   不行吗?   跟之前一样的效果。
IIC_SDA=0x80>>7这么写不是更简洁吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
lichuan_ken
1楼-- · 2019-07-22 21:15
零下一度 发表于 2015-6-17 22:36
回复【9楼】傻子:
---------------------------------
我刚好也有这个疑问,我觉得是可以的

各位,我觉得不用移啊,IIC_SDA=txd&0x80;不就行了嘛!!右边类型会自动转换为bit型的。
mjwang
2楼-- · 2019-07-23 00:32
_tank_ 发表于 2014-3-28 18:35
回复【7楼】傻子:
---------------------------------
(txd&0x80)&gt;&gt;7&nbsp;&nbsp;的意思是&nbsp;把txd ...

赞  我突然懂了一个之前不懂的问题
小猪脚
3楼-- · 2019-07-23 03:03
 精彩回答 2  元偷偷看……

一周热门 更多>