IIC读取一个字节函数

2019-07-20 22:52发布

本帖最后由 XHZSCONGE817 于 2016-4-14 08:56 编辑

#define CT_READ_SDA PFin(11)
u8 CT_IIC_Read_Byte(unsigned char ack)
{
        u8 i,receive=0;
         CT_SDA_IN();
        delay_us(30);
        for(i=0;i<8;i++ )
        {
                CT_IIC_SCL=0;                        
                CT_Delay();
                CT_IIC_SCL=1;         
                receive<<=1;
                if(CT_READ_SDA)receive++;   //这句是否可以改为 receive=GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_11);
        }                                          
        if (!ack)CT_IIC_NAck();
        else CT_IIC_Ack();   
         return receive;
}
求问,接收到的数据是从GPIO输入的值,IIC读取一个字节这个函数,接受的数据为何是receive++;初入嵌入式不懂?求解,是不是可以这样写

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。