HAL_I2C_Mem_Read()读取失败问题
我在开机后, 做完I2C的初始化之后, 使用HAL_I2C_Mem_Read()去读取I2C但是读取失败,
用示波器看Data和Clock的时序图
发现有问题时, Clock一直保持Low或High
请问一下, 这是STM的API HAL_I2C_Mem_Read()没有去把clock拉hihg, 拉low?
或者是其他什么问题??
Thanks
API会拉高拉低,你先普通io输出拉高拉低看看,然后检查io配置是否正确 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 普通IO都无法正常拉低拉高,看一下代码其他部分有没有引脚冲突,检查一下电路板。
io正常拉高拉低,再看i2c 参考下论坛里的帖子 https://www.stmcu.org.cn/module/forum/thread-597488-1-1.html,另外也可以看看STM32 HAL I2C库读指定寄存器的数据等帖子
页:
[1]