iic 发送程序问题

2020-01-27 11:26发布

本帖最后由 镜中风铃 于 2013-8-23 22:17 编辑

/**
* 函数: i2c_sendbyte(uint8 bt)
* 功能: 将输入的一字节数据bt发送
*/
void i2c_sendbyte(uint8 bt)
{
    uint8 i;
   
    for(i=0; i<8; i++)
    {  
        if (bt & 0x80)
                        SDA = 1;
        else
                        SDA = 0;

                SCL=0;
        SCL = 1;
                nops();
        bt <<= 1;
            
      
    }
         SCL = 0;
}


这个IIC 发送程序通不过,请问问题出在哪里呢?



* 函数: i2c_sendbyte(uint8 bt)
* 功能: 将输入的一字节数据bt发送
*/
void i2c_sendbyte(uint8 bt)
{
    uint8 i;
   
    for(i=0; i<8; i++)
    {  
        if (bt & 0x80)
                        SDA = 1;
        else
                        SDA = 0;

        nops();
        SCL = 1;
        bt <<= 1;
        nops();      
        SCL = 0;
    }
}

下面这个程序是可以通过的 请问区别在哪里
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
zouzhichao
1楼-- · 2020-01-28 10:06
楼主明白否?
镜中风铃
2楼-- · 2020-01-28 10:45
本帖最后由 镜中风铃 于 2013-8-23 22:51 编辑
zouzhichao 发表于 2013-8-23 22:31
void i2c_sendbyte(uint8 bt)
{
    uint8 i;


非常感谢, 现在懂了, 还有个问题是 为什么IIC 里没有,上升沿或者下降沿 ,打入数据这么一说,这个说法在SPI 里有。
zouzhichao
3楼-- · 2020-01-28 10:59
 精彩回答 2  元偷偷看……
镜中风铃
4楼-- · 2020-01-28 13:55
zouzhichao 发表于 2013-8-23 22:49
datasheet是个好东西,IIC时序,SPI时序还有其他一些1-Wire的时序(18B20,AM2301之流),基本照着datashee ...

非常感谢, 现在懂了, 还有个问题是 为什么IIC 里没有,上升沿或者下降沿 ,打入数据这么一说,这个说法在SPI 里有。

PS , 悬赏币是怎么给回答者的
zouzhichao
5楼-- · 2020-01-28 14:45
镜中风铃 发表于 2013-8-23 22:52
非常感谢, 现在懂了, 还有个问题是 为什么IIC 里没有,上升沿或者下降沿 ,打入数据这么一说,这个说法 ...

莫元倒是不要紧
你说的是“SPI的上升沿/下降沿采样"是吧?
镜中风铃
6楼-- · 2020-01-28 17:04
zouzhichao 发表于 2013-8-23 23:00
莫元倒是不要紧
你说的是“SPI的上升沿/下降沿采样"是吧?

嗯,是的,SPI书上是写着 上升沿打入数据, 下降沿接受数据

一周热门 更多>