WT418995874 发表于 2021-11-2 15:43

HC32L136在模拟IIC上设置成开漏输出是不是不能读输入电平?

请问下,现在用这款mcu在跟oled通信。有时候会通信无应答,导致oled刷全屏,部分数据没刷到。数据引脚设置成开漏输出,外部拉上电阻。
然后通过在读取电平时,切换模式,这样后就不会出现无应答,都能正常刷屏

martinhu 发表于 2021-11-2 19:08

你是用GPIO模拟的IIC还是硬件模块的IIC?

怀揣少年梦 发表于 2021-11-3 08:17

切换的时候要切换引脚模式吧

chenjun89 发表于 2021-11-3 08:19

外部要加上啦电阻

mqx2020 发表于 2021-11-3 08:33

开漏模式不太稳定,改成推挽模式

海洋无限 发表于 2021-11-3 13:09

IIC引脚是开漏引脚,需要外加上拉电阻

WT418995874 发表于 2021-11-3 13:44

chenjun89 发表于 2021-11-3 08:19
外部要加上啦电阻

有的,外面有上拉电阻,就是开漏模式下,不稳定,不像stm32那样稳定

WT418995874 发表于 2021-11-3 13:45

martinhu 发表于 2021-11-2 19:08
你是用GPIO模拟的IIC还是硬件模块的IIC?

GPIO模拟的,是不是跟stm32开漏不同?以前搞stm32开漏,是可以正常输出,读取输入的,不需要切换引脚的模式

WT418995874 发表于 2021-11-3 13:47

mqx2020 发表于 2021-11-3 08:33
开漏模式不太稳定,改成推挽模式

对,我感觉是这样,因为有时候可以正常,有时候刷了一半就有问题。
我改成读取切换为输入模式,就没出现问题。

guguo8266 发表于 2024-5-14 21:45

我也觉的不能和stm的一样,直接切换状态算了

yangxiaor520 发表于 2024-5-15 07:58

不用设置成推挽输出也没有问题的,只有外部有上拉电阻就行,因为对端IIC是硬件接口,一般是开漏方式。

亚瑟 发表于 2024-6-28 21:21

外面要接上拉吧

CarterERO 发表于 2024-6-28 22:03

是不是要改变io状态啊?

benjaminka 发表于 2024-7-7 13:32

开漏输出(Open-Drain)是一种输出驱动方式,它允许输出引脚在无驱动时处于高阻抗状态,可以通过外接上拉电阻来控制输出电平。

xiaoyaodz 发表于 2024-7-7 14:19

在这种模式下,引脚不再试图控制总线电平,而是简单地检测由其他设备或上拉电阻确定的电平。

nomomy 发表于 2024-7-7 15:50

当HC32L136的模拟IIC接口设置为开漏输出时,它确实不能直接读取输入电平。开漏输出的特点是,当输出为高电平时,实际上是处于高阻态,即不驱动输出引脚,因此无法直接读取引脚的电平状态。为了读取输入电平,通常需要外接一个上拉电阻,这样当外部设备将引脚拉低时,可以通过检测是否是高阻态来判断输入电平。

ccook11 发表于 2024-7-9 20:50

在使用开漏输出配置的IIC接口时,通常的做法是在SCL(时钟线)和SDA(数据线)上各接一个上拉电阻,这样可以在不发送数据时保持线路为高电平,而在需要读取数据时,外部设备可以将线路拉低,从而实现双向通信。

sdCAD 发表于 2024-7-9 23:53

一些现代微控制器的I²C硬件模块会自动处理这些细节,不需要你手动切换引脚模式。

uytyu 发表于 2024-7-10 02:54

在设计IIC接口时,推荐遵循标准的开漏输出加外部上拉电阻的配置。

primojones 发表于 2024-7-10 05:58

在开漏模式下,引脚可以被视为具有高阻态
页: [1] 2 3 4 5
查看完整版本: HC32L136在模拟IIC上设置成开漏输出是不是不能读输入电平?