I2C总线出错
答案:4 悬赏:0 手机版
解决时间 2021-02-01 20:03
- 提问者网友:缘字诀
- 2021-02-01 16:53
I2C总线出错
最佳答案
- 五星知识达人网友:冷風如刀
- 2021-02-01 17:00
1、首先确认你的I2C的速率,软件模拟的话就与MCLK直接相关了,自然单片机的速率下降就会正常;如果是硬件I2C的话需要看时钟来源是不是MCLK并作修改。
2、看你的电路并没有进行上拉也就是SDA和SCL需要接4.7K或者10K的电阻至VCC即可。
3、如果你的I2C是等待延时的话建议修改delay参数或者使用返回ACK查询方式。
4、有问题随时hi我,可以给你传一份调试通过的代码!
2、看你的电路并没有进行上拉也就是SDA和SCL需要接4.7K或者10K的电阻至VCC即可。
3、如果你的I2C是等待延时的话建议修改delay参数或者使用返回ACK查询方式。
4、有问题随时hi我,可以给你传一份调试通过的代码!
全部回答
- 1楼网友:孤老序
- 2021-02-01 19:15
两次写数据之间有没有等待前一次的数据写完?可以等20MS,或者再写判断有没有正确的ACK信号。
- 2楼网友:神鬼未生
- 2021-02-01 18:17
1、用示波器检查一下波形,看看是不是受到干扰啦;
2、检查接地,看有没有共地;
3、降低上拉电阻的阻值;
4、检查上拉电阻的位置,尽量靠近master追问请问我这样接有什么问题吗
2、检查接地,看有没有共地;
3、降低上拉电阻的阻值;
4、检查上拉电阻的位置,尽量靠近master追问请问我这样接有什么问题吗
- 3楼网友:七十二街
- 2021-02-01 17:17
你说的单片机的速度是指什么?
你要确定一下I2C clock的频率,是不是超过了AT24C256所能接受的时钟频率了。追问我说的单片机的速度是指单片机的时钟频率。我把它调慢一些,就没问题了,稍微快一点就会出现数据不准确的错误。追答那你可以用示波器先查一下时钟,确定一下I2C SCL的时钟频率,把它的频率降低,而不是把整个单片机的时钟频率降低。
你要确定一下I2C clock的频率,是不是超过了AT24C256所能接受的时钟频率了。追问我说的单片机的速度是指单片机的时钟频率。我把它调慢一些,就没问题了,稍微快一点就会出现数据不准确的错误。追答那你可以用示波器先查一下时钟,确定一下I2C SCL的时钟频率,把它的频率降低,而不是把整个单片机的时钟频率降低。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯