编程论坛
注册
登录
编程论坛
→
单片机编程
单片机中的一句C语言语句不明白
byx123
发布于 2012-12-02 14:49, 3442 次点击
I2C_SDA = (bit)(dat & 0x80);
I2C_SDA 是单片机一个端口的定义
bit是位变量定义的意思
dat是一个字符型变量
(dat & 0x80)是这个变量和0x80位与结果是x000 0000
整句看起来不知道什么意思
4 回复
#2
于祥
2012-12-02 19:10
I2C_SDA = (bit)(dat & 0x80);
这应该是i2c总线的数据线取值的表达式,数据线只能取高电平或者是低电平,所以用bit强制取一位
#3
花火
2012-12-09 09:23
回复 2楼 于祥
那他直接操作SDA=0x00不就行了么?
#4
于祥
2012-12-09 15:18
回复 3楼 花火
读写的时候数据线有时候由总线控制,不是用户控制的
#5
夜雨风铃
2013-08-20 16:34
I2C_SDA取dat(应该是数据位吧?)的最高位,dat与0x80作&运算的到的结果是0000_0000或1000_0000,这是8位的数据,加(bit)强制转换得到位变量。
1