abotomson
发表于 2024-7-16 14:15
在I²C通信中,读取数据或ACK(确认)信号时,需要将引脚配置为输入模式。这通常是通过将引脚设置为浮空输入(有时称为高阻抗输入)来实现的。
janewood
发表于 2024-7-16 17:21
在HC32L136单片机上模拟IIC通信时,将SCL和SDA引脚配置为开漏输出是常见的做法。这样做的好处是可以方便地实现“线与”功能,即多个设备的SCL和SDA引脚可以直接相连,只有当所有设备都输出高电平时,总线才为高电平;只要有任意一个或多个设备输出低电平,总线就为低电平。
benjaminka
发表于 2024-7-16 20:27
当一个引脚被配置为开漏输出时,它本身并不能主动读取输入电平。
mikewalpole
发表于 2024-7-17 09:38
在读取电平状态时,需要确保外部上拉电阻的阻值适当,以确保总线在空闲状态时能够稳定在高电平。
lzbf
发表于 2024-7-17 13:04
当你需要发送数据时,可以将引脚设置为输出模式(推挽输出或其他适合的输出模式),并在发送完成后及时将引脚设置为输入模式,以便读取IIC总线上的数据。
burgessmaggie
发表于 2024-7-17 16:31
它不会主动拉高或拉低总线电平,而是依靠外部上拉电阻将总线保持在高电平。
plsbackup
发表于 2024-7-17 19:52
直接读取开漏输出引脚的状态并不反映总线的真实电平,因为你读取的是引脚内部的状态,而非总线上的状态。
febgxu
发表于 2024-7-18 20:09
模拟IIC(Inter-Integrated Circuit)通信中,当将HC32L136设置为开漏输出模式时,它不能同时读取输入电平。开漏输出模式允许微控制器将输出信号“拉低”到地(0V),但不能“推高”到电源电压(VCC)。这意味着,当微控制器试图输出高电平时,它实际上是将输出引脚置于高阻态,允许外部上拉电阻将引脚电压拉至高电平。
mmbs
发表于 2024-7-19 08:11
高电平则由外部上拉电阻提供。这种配置对于I²C总线是非常重要的,因为它允许多个设备共享同一总线而不至于产生冲突,同时支持时钟延展(clock stretching)特性。
suncat0504
发表于 2024-7-19 16:42
目标设备有上拉电阻的话,不算问题吧。
地瓜patch
发表于 2024-7-29 22:13
个人习惯用模拟iic
模拟iic比硬件iic好用
suncat0504
发表于 2024-7-30 07:42
算是踩坑了额,跟着学习经验。
suncat0504
发表于 2024-7-30 07:43
与外设有没有关系?比如比如外设的上拉电阻、寄生电容不一致,导致的结果不一样?
鹿鼎计
发表于 2024-8-1 14:47
我也觉得不能和stm一样,只是切换状态,
朝生
发表于 2024-8-2 23:59
当引脚被配置为打开泄漏输出时,它不会主动读取输入电平。
suncat0504
发表于 2024-8-5 08:50
有上拉电阻的话,就可以的吧。
Pretext
发表于 2024-8-5 17:08
泄漏模式不稳定,所以切换到推挽模式,
理想阳
发表于 2024-8-6 12:11
如果目标器件有上拉电阻,这不是问题。
LinkMe
发表于 2024-8-7 15:42
在开路泄漏模式下,可以认为该引脚处于高阻态
V853
发表于 2024-8-10 13:57
如果有上拉电阻就可以了。