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

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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版