你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

在进行I2C写时,总是卡在总线检测忙的while循环中

[复制链接]
watercici 提问时间:2018-3-12 14:04 /
阅读主题, 点击返回1楼
收藏 评论15 发布时间:2018-3-12 14:04
15个回答
回答时间:2018-3-13 09:34:02
看一下配置,最起码有波形输出。
x5y4z3 回答时间:2018-3-13 09:59:28
watercici 发表于 2018-3-12 16:51
没明白,我用示波器抓了一下,没有回复

做一个有条件的 break; 使至程序能跳出这 while 的回圈并做个 Mark,好让您能使用这个标示查看这程序的 Error Code,方便您能调试您的这程序,这样也更有效率些。我指得是在程序多处都有设置这些非寻常发生的状况,所产生出的 Error Code 好让您找一部告知发生问题所在之处。
nyszx 回答时间:2018-3-13 10:44:51
加入超时判断,并返回出错状态,便于分析

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

jjbboox 回答时间:2018-3-13 10:56:27
有上拉电阻吗?
或者端口没有设为上拉,就算设为上拉,外面最好还是接一个上拉电阻。
程序本身也有问题,通讯不成功也最多尝试几次,几次仍然不成功,那么应该跳出循环,并报错。不应该死循环啊!

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

xmstudio 回答时间:2018-3-13 23:41:36
没加上拉电阻的可能性大,如果是自己做得I2C设备板子很可能没有上拉电阻,而且我记得STM32CubeMX中,当IO口被设置成I2C之后不能再设置为OD输出模式,否则I2C会被自动Remap到其他的引脚上,所以我在调试没有上拉电阻的I2C设备模块的时候单独加了一个转接板用于接上拉电阻

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

dsjsjf 回答时间:2018-3-15 15:44:49
参考官方例程或者用CUBE配置生成一个试试看,我的F2,用的CUBE配置是正常的

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

12

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版