指定地址读出总是无法实现

[复制链接]
3450|19
 楼主| stly 发表于 2021-7-30 19:44 | 显示全部楼层 |阅读模式
正在使用PIC18F26K83的I2C读写24LC系列EEPROM,指定地址读出总是无法实现
 楼主| stly 发表于 2021-7-30 19:46 | 显示全部楼层
以前用过其他18F单片机的MSSP读写过,没有问题,但是换到K83以后,直接玩不转了
jlyuan 发表于 2021-7-30 19:48 | 显示全部楼层
MCC生成的代码没有文档?
juventus9554 发表于 2021-7-30 19:54 | 显示全部楼层
这个跟芯片型号有什么关系??
lium 发表于 2021-7-30 20:02 | 显示全部楼层
通过I2C读外部EEPROM, 你拿示波器量一下波形, 看看是I2C没发出来波形?
jiajs 发表于 2021-7-30 20:04 | 显示全部楼层
还是I2C地址搞错了?
chuxh 发表于 2021-7-30 20:05 | 显示全部楼层
还是EEPROM没有ACK?
renyaq 发表于 2021-7-30 20:07 | 显示全部楼层
第一步先看地址字节后面有没有ack, 没有后面都是白扯.
 楼主| stly 发表于 2021-7-30 20:09 | 显示全部楼层
芯片型号不一样,实现的方式不一样,寄存器设置也不一样。
zhenykun 发表于 2021-7-30 20:13 | 显示全部楼层
现在实现当前地址读,就是不指定特定地址的读没有问题。
 楼主| stly 发表于 2021-7-30 20:15 | 显示全部楼层
但是当指定地址以后,得不到EEPROM的ACK,有时候I2C的S位还不自动清零。
 楼主| stly 发表于 2021-7-30 20:17 | 显示全部楼层
后来在发送完两个地址字节后,加入了一段延时,得到ACK了,然后就可以了。
 楼主| stly 发表于 2021-7-30 20:20 | 显示全部楼层
但是后来把这段代码封装成一个函数在main()中调用时又出现了前面的状况,总之给人感觉很不稳定。
 楼主| stly 发表于 2021-7-30 20:22 | 显示全部楼层
在main()函数中正常运行的程序,为什么换成程序调用就不行了呢?
 楼主| stly 发表于 2021-7-30 20:25 | 显示全部楼层

多谢大家讨论这么多哈,呵呵
qcliu 发表于 2021-8-13 13:31 | 显示全部楼层
一直没有成功吗
gwsan 发表于 2021-8-13 14:11 | 显示全部楼层
使用普通的io口进行模拟
kxsi 发表于 2021-8-13 14:12 | 显示全部楼层
有木有返回错误码
nawu 发表于 2021-8-13 14:15 | 显示全部楼层
一开始设定地址了没有啊
tfqi 发表于 2021-8-13 14:19 | 显示全部楼层
一样的芯片寄存器的设置应该是一样的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

7058

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部