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

关于I2C读写问题

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
下面是一个I2C写函数,但是始终不能理解这个函数里面的“I2C_SDA = dat >> 7;”这句话,请高手解答一下!谢谢!!!!
# O2 j9 I5 s) Z$ g6 a0 O! A
$ i3 D5 O* g6 T% i/ s) vuchar I2C_SendByte(uchar dat, uchar ack)
0 l, F! B8 H! j+ O{
5 F! F2 J/ t, U* S1 f+ h# s5 h  d        uchar a = 0,b = 0;//最大255,一个机器周期为1us,最大延时255us。
9 m0 O7 h* V; h" c9 H                       
! [: I# \" S6 l. g, f; ^5 Y        for(a=0; a<8; a++)//要发送8位,从最高位开始
7 C2 S6 C5 h4 e5 A( s( x8 |        {5 S) T6 u$ r- h4 r# y8 U$ d7 L
                I2C_SDA = dat >> 7;         //起始信号之后I2C_SCL=0,所以可以直接改变I2C_SDA信号) i+ w. s% P0 x* U# \) H6 e# x
                dat = dat << 1;
6 j" l. B" ~9 I) _5 x                I2C_Delay10us();
' C; t5 U& n# ^. P4 }& O                I2C_SCL = 1;
9 q$ b7 `: y9 C3 s2 h4 G                I2C_Delay10us();//建立时间>4.7us
& g: M/ a& @) {* t* D/ o- c                I2C_SCL = 0;% r# y/ J4 q  C4 E) @! }" u
                I2C_Delay10us();//时间大于4us               
( J/ Y  V5 L6 h+ d6 x        }" J. c; ]( i+ |5 J& c5 i

! V7 F% j7 n  ]* H        I2C_SDA = 1;
% L% v, m. \$ I8 _$ j+ `2 v, v        I2C_Delay10us();
( h- A8 ^& i# W' K1 T        I2C_SCL = 1;
) ?, Y5 ?. X5 X: ]# X/ X        while(I2C_SDA && (ack == 1))//等待应答,也就是等待从设备把I2C_SDA拉低
5 R  q+ O* }0 }4 l. Z        {
7 C4 b- h8 g3 s+ v                b++;) F/ B( ]1 r) R" ?* E3 v
                if(b > 200)         //如果超过200us没有应答发送失败,或者为非应答,表示接收结束7 ~7 T7 N- K3 o$ v9 W( h% @; F' c" F
                {
7 c" \- j! u6 [. e- P/ ~2 F8 Y                        I2C_SCL = 0;% R3 N8 r! F8 {% v( J' L
                        I2C_Delay10us();, C8 d! ^2 @$ E2 m% |5 d
                        return 0;- S& k1 a; v% M2 i- [/ a
                }# _$ L0 ?* Y: [7 d! R
        }
& P& M+ S2 O1 T4 r! F( q) F9 P3 T1 `4 `  I- _: K, H3 K( K
        I2C_SCL = 0;
6 m8 p. H/ h0 Z, Z1 k- U        I2C_Delay10us();
: p) w* h  h: B2 C' @# ?3 P% e         return 1;               
+ c- C8 y" g; v3 V& a7 c}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-6 14:01 , Processed in 0.078125 second(s), 24 queries , Gzip On.

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

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

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