gpt4 book ai didi

c - STM32 I2C 设置 SDA 为低电平

转载 作者:太空宇宙 更新时间:2023-11-04 03:12:26 26 4
gpt4 key购买 nike

有什么办法可以把STM32的I2C1连接的SDA和SCL引脚设置为低信号或高信号吗?

我使用安全芯片,我必须发送唤醒条件,条件如下:

if SDA is held low for a period of greater than 60us, the device will exit low power mode and after a delay of 1500us, it will be ready to receive I2C commands.

我已经尝试使用 HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_9); 切换实际引脚,但这不起作用。

我已经使用 STM32CubeMX 配置了我的项目。

感谢您的帮助。

最佳答案

在 I2C 中,START 条件需要从高到低的转换,如果您随后发送虚拟地址 0,将生成 NACK(或者更确切地说,缺少任何响应将被解释为 NACK)。在正常交易中,软件会通过生成重复的 START 或 STOP 条件来响应 NACK,但这必须在软件中完成,因此您只需在 1.5ms 内什么都不做。此后,您可以使用设备的实际地址生成 START,如果设备正在运行,它将生成 ACK。

我不熟悉 HAL 库驱动程序,坦率地说文档很糟糕,但它可能没有给你必要的控制,你至少必须在寄存器级别访问 I2C 外设这个程序。您可以尝试零长度的 I2C_MasterRequestWrite() 调用来寻址零,然后延迟。示波器在这里很有用,可确保生成预期的信号时序。

关于c - STM32 I2C 设置 SDA 为低电平,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55099496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com