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

HAL_I2C_Mem_Read()读取失败问题

[复制链接]
matttsai 提问时间:2018-4-20 15:15 /
我在开机后, 做完I2C的初始化之后, 使用HAL_I2C_Mem_Read()去读取I2C
但是读取失败,

用示波器看Data和Clock的时序图
发现有问题时, Clock一直保持Low或High

请问一下, 这是STM的API HAL_I2C_Mem_Read()没有去把clock拉hihg, 拉low?
或者是其他什么问题??


Thanks

收藏 评论4 发布时间:2018-4-20 15:15

举报

4个回答
king321 回答时间:2018-4-20 16:27:59
API会拉高拉低,你先普通io输出拉高拉低看看,然后检查io配置是否正确

评分

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

查看全部评分

matttsai 回答时间:2018-4-20 16:57:38
king321 发表于 2018-4-20 16:27
API会拉高拉低,你先普通io输出拉高拉低看看,然后检查io配置是否正确

你先普通io输出拉高拉低看看
==>是指HAL_GPIO_WritePin()吗?

我直接使用HAL_GPIO_WritePin(), SDA, SCL似乎不会被拉低
HAL_GPIO_WritePin(I2C2_SCL_GPIO_Port, I2C2_SCL_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(I2C2_SDA_GPIO_Port, I2C2_SDA_Pin, GPIO_PIN_RESET);

检查io配置是否正确
==>
如果有问题, 应该是百分之百会发生问题,
但我这个问题不是每次都会发生

还有其他建议吗?

Thanks
king321 回答时间:2018-4-20 17:17:06
普通IO都无法正常拉低拉高,看一下代码其他部分有没有引脚冲突,检查一下电路板。
io正常拉高拉低,再看i2c

评分

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

查看全部评分

feixiang20 回答时间:2018-4-21 00:06:47
参考下论坛里的帖子 https://www.stmcu.org.cn/module/forum/thread-597488-1-1.html,另外也可以看看STM32 HAL I2C库读指定寄存器的数据等帖子

评分

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

查看全部评分

所属标签

相似问题

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