找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[求助]IIC读字节代码程序

[复制链接]
跳转到指定楼层
楼主
ID:40490 发表于 2012-7-18 17:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
uchar read_byte() { uchar i,k; scl=0; delay(); sda=1; delay(); for(i=0;i<8;i++) { scl=1; delay(); k=(k<<1)|sda; scl=0; delay(); } return k; } sda 被拉为1了 K左移 结果K是不是全是FF 这有在读数据吗? 无法理解 求高手指点
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:27916 发表于 2012-7-19 08:55 | 只看该作者

SDA=1;应该是让SDA口做为输出吧,后面读取SDA的时候,就是SDA IO口的状态了,不会一直是1的

回复

使用道具 举报

板凳
ID:7485 发表于 2012-7-26 19:34 | 只看该作者

由于51单片机是准双向I/O,有读锁存器和读口线(引脚)之分,读口线之前必须先置I/O锁存器为1,读口线才能有正确结果。所以SDA=1是必须的。

 

这正是许多初学者不容易理解并容易出错的地方。而且出错的原因还不容易分析。

 

 

[此贴子已经被作者于2012-7-26 19:34:43编辑过]
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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