找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2237|回复: 8
收起左侧

I2C通信 到底哪里出问题了,没有回应!

[复制链接]
ID:820507 发表于 2020-10-23 14:49 | 显示全部楼层 |阅读模式
回复

使用道具 举报

ID:654028 发表于 2020-10-23 16:33 | 显示全部楼层
你这程序好不规范,看的好懵,你iic函数没丢while(1)里面,看样子你是模拟的iic,你是上电就进行iic通信一次,然后就进入空的while(1)了。再也不通讯了。
回复

使用道具 举报

ID:654028 发表于 2020-10-23 16:36 | 显示全部楼层
还有,不是应该先初始化iic的io口再通信吗?你这先通信完再初始化?
回复

使用道具 举报

ID:820507 发表于 2020-10-23 17:04 | 显示全部楼层
本帖最后由 liaoym 于 2020-10-23 17:07 编辑
心有浮生 发表于 2020-10-23 16:33
你这程序好不规范,看的好懵,你iic函数没丢while(1)里面,看样子你是模拟的iic,你是上电就进行iic通信 ...

是的,我按自己的理解写的。我就是想实现写入0xaa,然后单片机从24c02中读回刚才写的,赋给P2。P2上接了LED灯观察。只需要通信一次
回复

使用道具 举报

ID:820507 发表于 2020-10-23 17:24 | 显示全部楼层
心有浮生 发表于 2020-10-23 16:33
你这程序好不规范,看的好懵,你iic函数没丢while(1)里面,看样子你是模拟的iic,你是上电就进行iic通信 ...

谢谢回帖
是的 我就通信1次。  我想写入0xaa,然后单片机从24c02中读取出来,赋给P2,通过观察P2接的LED灯,看是不是刚刚写入的。
回复

使用道具 举报

ID:654028 发表于 2020-10-24 09:07 | 显示全部楼层
liaoym 发表于 2020-10-23 17:24
谢谢回帖
是的 我就通信1次。  我想写入0xaa,然后单片机从24c02中读取出来,赋给P2,通过观察P2接的LED灯 ...

先初始化再通信,还有你上电瞬间就通信,来得及看现象吗
回复

使用道具 举报

ID:820507 发表于 2020-10-24 13:05 | 显示全部楼层
心有浮生 发表于 2020-10-24 09:07
先初始化再通信,还有你上电瞬间就通信,来得及看现象吗

居然可以啦!我就加了个暂停
void main()
{ init();
qidong();
wz( );
scl=1;_nop_();_nop_();_nop_(); scl=0;_nop_();// 应答
pnwz( );
scl=1;_nop_();_nop_();_nop_();scl=0;_nop_(); // 应答
shuju();
scl=1;_nop_();_nop_();_nop_(); scl=0;_nop_(); // 应答
jieshu();
//zt();
  init();
   du();
   _nop_();
   if(sda==0)
回复

使用道具 举报

ID:688032 发表于 2020-10-24 13:45 | 显示全部楼层
EEPRMO I2C写入后不能立刻读出,需要延时一段时间,否组EEPROM无法正常响应的
回复

使用道具 举报

ID:820507 发表于 2020-10-24 14:44 | 显示全部楼层
amberxu 发表于 2020-10-24 13:45
EEPRMO I2C写入后不能立刻读出,需要延时一段时间,否组EEPROM无法正常响应的

嗯,原来是这样。谢谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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