找回密码
 立即注册

QQ登录

只需一步,快速开始

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

C语言中位操作问题

[复制链接]
跳转到指定楼层
楼主
ID:329253 发表于 2018-5-25 00:00 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
这个EEPROM的程序里边,读操作这个dat|=I2C_SDA是怎么回事?麻烦会的大神给我讲讲,小弟不胜感激

1527177556791.jpg (86.71 KB, 下载次数: 38)

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

使用道具 举报

沙发
ID:328769 发表于 2018-5-25 01:48 来自手机 | 只看该作者
就是dat=dat或上i2c的数据嗯
回复

使用道具 举报

板凳
ID:18297 发表于 2018-5-25 08:27 | 只看该作者
dat <<1;            //左移一位,
dat|=I2C_SDA;    //dat 或 I2C_SDA,说明dat的最低位(0)和I2C_SDA或,相当于取了I2C—SDA.
循环8次,相当于取了8次I2C—SDA位,将I2C—SDA的串行发送的数字8位取成一个8位数。
即读取了一个字节的数(8位)。
回复

使用道具 举报

地板
ID:337566 发表于 2018-5-25 08:41 | 只看该作者
加上sda的数据啊
回复

使用道具 举报

5#
ID:330198 发表于 2018-5-25 09:09 | 只看该作者
I2C标准读取数据的流程,在时钟线拉高的情况下,数据线的高低电平由dat保存,每保存一位dat就左移一位,因为是二进制只能这样保存数据。
回复

使用道具 举报

6#
ID:164602 发表于 2018-5-25 10:05 | 只看该作者
你写的这个,是收集位数据,转换为8位字节的表达式。
第一:“或|”运算:就是有1得1,全为零才为零。
第二:dat是8位,I2C_SDA是一位。
当两数据进行或赋值运算时,就将SDA的一位数据,加入到8位的dat低位中,再通过移位,得到一个完整的8位数据。
回复

使用道具 举报

7#
ID:91114 发表于 2018-5-25 14:09 | 只看该作者
dat = dat | I2C_SDA;
回复

使用道具 举报

8#
ID:92570 发表于 2018-5-25 16:19 | 只看该作者
读取当前I2C_SDA上的数据 (一个bit读取)
回复

使用道具 举报

9#
ID:284659 发表于 2018-5-25 17:30 | 只看该作者
和它或,按位或
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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