社区导航

 
查看: 1215|回复: 7

[讨论] TIVA I2C,为什么主机总是busy

[复制链接]

14

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-4-3 22:02:27 | 显示全部楼层 |阅读模式
运行程序发现一直在while(I2CMasterBusy(I2C1_BASE)); 等待,求帮忙!
此帖出自最爱TI M4论坛

回复

使用道具 举报

1552

TA的帖子

0

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

发表于 2015-4-3 22:30:01 | 显示全部楼层
TivaC不熟悉,帮顶一下,个人觉得一般程序里不要有这样的循环,一旦器件有问题或者其他原因导致标志位不能正确置位,容易导致程序整体卡死在这些地方,如果能加上循环检测的次数限制和出错时的标志,这样也方便在没有调试器进行在线调试的时候发现问题。

点评

有道理,非常感谢  详情 回复 发表于 2015-4-4 11:18

回复 支持 反对

使用道具 举报

6081

TA的帖子

4957

TA的资源

至上芯片

Rank: 13Rank: 13Rank: 13Rank: 13

资源大师勋章

发表于 2015-4-4 08:11:48 | 显示全部楼层
楼上说的有道理。
另外看看寄存器配置,是不是检测到busy前后要有个释放过程,如果不释放就会一直busy

点评

谢谢,给了我一点灵感  详情 回复 发表于 2015-4-4 11:17

回复 支持 反对

使用道具 举报

14

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-4-4 11:17:53 | 显示全部楼层
tiankai001 发表于 2015-4-4 08:11
楼上说的有道理。
另外看看寄存器配置,是不是检测到busy前后要有个释放过程,如果不释放就会一直busy

谢谢,给了我一点灵感

回复 支持 反对

使用道具 举报

14

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-4-4 11:18:55 | 显示全部楼层
bobde163 发表于 2015-4-3 22:30
TivaC不熟悉,帮顶一下,个人觉得一般程序里不要有这样的循环,一旦器件有问题或者其他原因导致标志位不能正确置位,容易导致程序整体卡死在这些地方,如果能加上循环检测的次数限制和出错时的标志,这样也方便在没有调试器进行在线调试的时候发现问题。

有道理,非常感谢

回复 支持 反对

使用道具 举报

93

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-4-5 12:08:17 | 显示全部楼层
解决没,我也遇到这个问题了。知道了告诉一声啊

点评

我把模拟地和数字地连在一起,好像程序运行是没问题了,但读出来的数据全是255,也是搞不定了  详情 回复 发表于 2015-4-5 13:08

回复 支持 反对

使用道具 举报

14

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-4-5 13:08:33 | 显示全部楼层
1301120345 发表于 2015-4-5 12:08
解决没,我也遇到这个问题了。知道了告诉一声啊

我把模拟地和数字地连在一起,好像程序运行是没问题了,但读出来的数据全是255,也是搞不定了

回复 支持 反对

使用道具 举报

93

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-4-5 16:40:13 | 显示全部楼层
你用的是M4129吗?主机发数据后的应答bit是不是不用管啊,是从机自动应答的啊?还是主机每次发送一数据后,配置成主机接受模式,等待应答啊?我将I2C1配置成 主机模式,且单次发送。发送过程就俩函数:I2CMasterDataPut(),和I2CMasterControl();然后检查主机状态总线状态,都为闲。可是从机(外接DAC)没有信号啊。

回复 支持 反对

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-8-21 21:52 , Processed in 0.364105 second(s), 22 queries , Redis On.

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