仪器社区

温湿度传感器sht10写函数这一段怎么理解?程序见补充说明

chengadibxt45 2010-06-22
*--------------------------------------;模块名称:s_write_byte();;功能:SHT10写函数;参数说明:;创建日期:;版本:;修改日期:;修改说明:;-------------------------------------*/cha... *-------------------------------------- ;模块名称:s_write_byte(); ;功 能:SHT10写函数 ;参数说明: ;创建日期: ;版 本: ;修改日期: ;修改说明: ;-------------------------------------*/ char s_write_byte(unsigned char value) //---------------------------------------------------------------------------------- // writes a byte on the Sensibus and checks the acknowledge { unsigned char i,error=0; for (i=0x80;i>0;i/=2) //shift bit for masking { if (i & value) DATA=1; //masking value with i , write to SENSI-BUS else DATA=0; SCK=1; //clk for SENSI-BUS _nop_();_nop_();_nop_(); //pulswith approx. 3 us SCK=0; } DATA=1; //release DATA-line SCK=1; //clk #9 for ack error=DATA; //check ack (DATA will be pulled down by SHT11),DATA在第9个上升沿将被SHT11自动下拉为低电平。 _nop_();_nop_();_nop_(); SCK=0; DATA=1; //release DATA-line return error; //error=1 in case of no acknowledge //返回:0成功,1失败 }
评论
全部评论
nssvnsbvnbv
就是标准的I2C写字节操作呀.从valueZ高位开始发送数据到i2c总线上,共发送8次.(i/=2相当于右移一位).发送完成后,再从DATA数据线上接收应答.
9 0 2010-06-23 0条评论 回复
ooggrree
二楼顶一个
4 0 2010-06-23 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论