找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2651|回复: 3
打印 上一主题 下一主题
收起左侧

IIC如何写入一个字节

[复制链接]
跳转到指定楼层
楼主
ID:292943 发表于 2018-3-16 21:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*发送一个字节*/
void I2C_send_byte(uchar byte)
{
        uchar i;
        for(i = 0 ; i < 8 ; i++)//特别是这里看不懂
        {
                SCL = 0;
                _nop_();
                if (byte & 0x80)
                {                               
                        SDA = 1;       
                        _nop_();                                  
                }                               
                else
                {
                        SDA = 0;
                        _nop_();
                }
                SCL = 1;
                _nop_();
                byte <<= 1;        // 0101 0100B
        }
        SCL = 0;
        _nop_();
        SDA = 1;
        _nop_();
}


/*I2C 读一字节*/
uchar I2C_read_byte()
{
        uchar dat,i;
        SCL = 0;
        _nop_();
        SDA = 1;
        _nop_();
        for(i = 0 ; i < 8 ; i++)//特别是这里看不懂
        {
                SCL = 1;
                _nop_();
                if (SDA)                            
                {
                         dat |= 0x01; //
                }
                else
                {
                        dat &=  0xfe;        //1111 1110
                }
                _nop_();
                SCL = 0 ;
                _nop_();
                if(i < 7)
                {
                        dat = dat << 1;       
                }
        }
        return(dat);
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:123289 发表于 2018-3-17 02:11 | 只看该作者
你需要的不是程序,而是认真、仔细的读通IIC协议!!!
提示命令、地址、数据……
回复

使用道具 举报

板凳
ID:111634 发表于 2018-3-17 18:06 | 只看该作者
先学理论,打基础,否则,问题多多,事倍功半。
回复

使用道具 举报

地板
ID:212149 发表于 2018-3-17 18:49 | 只看该作者
这段程序配合着iic的通信协议和时序图,那么大概会看懂一点
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表