找回密码
 注册
关于网站域名变更的通知
查看: 852|回复: 0
打印 上一主题 下一主题

关于I2C读写问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2014-7-24 20:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
下面是一个I2C写函数,但是始终不能理解这个函数里面的“I2C_SDA = dat >> 7;”这句话,请高手解答一下!谢谢!!!!, O2 J* Q* e1 w8 ?, G/ U
5 h' c+ y3 P/ Z, d% p0 [. c4 X
uchar I2C_SendByte(uchar dat, uchar ack)
% w1 B1 A: r' n8 Z{/ u" w1 ^4 g8 V' L5 N) {! T. p
        uchar a = 0,b = 0;//最大255,一个机器周期为1us,最大延时255us。
% n: Q- f% b# d, G' {; K* I                        6 J/ a& o3 S4 P. `
        for(a=0; a<8; a++)//要发送8位,从最高位开始1 k" `9 G& a5 }; g/ ?% S% e
        {; W* g4 |6 S9 Z0 K' [; j! L
                I2C_SDA = dat >> 7;         //起始信号之后I2C_SCL=0,所以可以直接改变I2C_SDA信号4 R5 D, d% Z- o5 }3 ?9 j
                dat = dat << 1;
# n( \! B+ x8 N                I2C_Delay10us();
5 m' o' W+ g7 n6 [2 b3 g                I2C_SCL = 1;* R* G9 S" t; R- r! {
                I2C_Delay10us();//建立时间>4.7us, f- n" H+ x$ F2 K3 d  ]
                I2C_SCL = 0;) j( u% U6 O, r4 Y
                I2C_Delay10us();//时间大于4us                1 k) ?$ n, d1 x
        }
' ]% S- b$ o4 u, ?* B1 B
1 V7 J  F) b8 J        I2C_SDA = 1;
6 @8 S$ z& t! a        I2C_Delay10us();
7 J) U8 F- P7 \& d9 f7 X" G/ _) F        I2C_SCL = 1;
) ~0 L4 h8 s) t6 _; p# y) D        while(I2C_SDA && (ack == 1))//等待应答,也就是等待从设备把I2C_SDA拉低3 z% Y: Y) T. V- p, O$ L
        {" O+ g5 a1 M% G2 {* F5 \2 K
                b++;
! D. u. e9 o, a4 D                if(b > 200)         //如果超过200us没有应答发送失败,或者为非应答,表示接收结束& u& B5 V5 \( G# Y6 u
                {
: {; p+ I/ U9 e                        I2C_SCL = 0;
4 `+ J) S3 A: v# ~+ {3 y                        I2C_Delay10us();5 `) }4 k% d5 C7 R
                        return 0;) G  d+ \% I- T" c* B
                }
, u% T( C! g) Y, @0 g7 M% r        }
) D) O, b$ W. v' j; T2 f1 j/ i% r8 _; \
        I2C_SCL = 0;6 H7 A4 [  k- C
        I2C_Delay10us();
% }: q3 [/ r, Q8 ?+ d# O         return 1;               
" J  l! l0 {, ?  L( x4 G( C}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-23 14:05 , Processed in 0.156250 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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