请大神帮我讲解一下这个时序图该怎么理解一下呢

2019-10-16 05:36发布

u8 IIC_Read_Byte(unsigned char ack)
{
        unsigned char i,receive=0;
        SDA_IN();//SDA设置为输入
    for(i=0;i<8;i++ )
        {
        IIC_SCL=0;   
        delay_us(2);
                IIC_SCL=1;
        receive<<=1;
        if(READ_SDA)receive++;   
                delay_us(1);
    }                                         
    if (!ack)
        IIC_NAck();//发送nACK
    else
        IIC_Ack(); //发送ACK   
    return receive;
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
正点原子
1楼-- · 2019-10-16 11:00
输出SCL时钟。
龙之谷
2楼-- · 2019-10-16 13:22
 精彩回答 2  元偷偷看……
heqicheng
3楼-- · 2019-10-16 14:08
龙之谷 发表于 2016-12-1 15:25
本来你一个人有疑问,看了你的求助帖,我也有疑问了,你这问题要问的是个啥

就是这个时序可以给我讲一下吗
heqicheng
4楼-- · 2019-10-16 15:51
上面的三行的作用,也就是为什么这么写
不想偷懒的蜗牛
5楼-- · 2019-10-16 18:18
我个人觉得 读一个字节和写一个字节是相反的,写字节的时候在SCL为低的时候去写,允许数据变化,高的时候要求稳定,读的话就相反,在SCL为高的时候数据才是稳定的,读来的才是有效的。   我是这么理解的。。
heqicheng
6楼-- · 2019-10-16 19:39
正点原子 发表于 2016-12-1 15:14
输出SCL时钟。

那为什么不调过来写呢

一周热门 更多>