此模式适用于外部设备控制信号输出的场合。 举例:STM32使用I2C通讯时,SDA和SCL都要使用开漏输出模式。这是因为I2C通讯总线中,SDA和SCL线都可能出现多主机同时发送数据的情况,为避免数据冲突,需要将SDA和SCL配置成开漏输出模式,并且使用外部上拉电阻将它们拉升到高电平。 ## 2.6 推挽输出模式(Push-pull Output Mode)...
I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信(我的平衡小车读取MPU6050模块的数据就是用I2C总线)。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。 如果用通用IO口模拟I2C总线,并实现双向...
当使用GPIO模拟IIC时,数据线SDA对应的GPIO模式应该设置为开漏输出模式(Open-Drain)。这是因为IIC总线是双向的,需要支持数据线的双向传输。 在开漏输出模式下,GPIO引脚可以被设置为输出低电平(0)或者输出高阻抗状态(高电平)。当GPIO引脚处于高阻抗状态时,总线上的上拉电阻会将总线拉高,从而允许其他设备在总线上传输数...
在STM32的应用中,除了必须用开漏模式的场合,我们都习惯使用推挽输出模式。复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)F4系列与F1系列区别:本质上的区别是F4系列采用了Cortex-M4内核而F1系列采用Cortex-M3内核 F1系列(M3)IO口基...
举例:STM32使用I2C通讯时,SDA和SCL都要使用开漏输出模式。这是因为I2C通讯总线中,SDA和SCL线都可能出现多主机同时发送数据的情况,为避免数据冲突,需要将SDA和SCL配置成开漏输出模式,并且使用外部上拉电阻将它们拉升到高电平。 2.6 推挽输出模式(Push-pull Output Mode) ...
typedefstructSimuI2CObject{uint32_tperiod;//确定速度为大于0K小于等于400K的整数,默认为100Kvoid(*SetSCLPin)(SimuI2CPinValue op);//设置SCL引脚void(*SetSDAPin)(SimuI2CPinValue op);//设置SDA引脚uint8_t(*ReadSDAPin)(void);//读取SDA引脚位void(*Delayus)(volatile uint32_tperiod);//速度延时函...
I2C总线简单方便,是我们经常使用的一种总线。但有时候我们的MCU没有足够多的I2C控制器来实现我们的应用,所幸我可以使用普通的GPIO引脚来模拟低速的I2C总线通信。这一节我们就来实现使用软件通过普通GPIO操作I2C设备的驱动。 1、功能概述 I2C总线使用两条线:串行数据(SDA
复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA) 复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS) F4系列与F1系列区别: 本质上的区别是F4系列采用了Cortex-M4内核而F1系列采用Cortex-M3内核 F1系列(M3)IO口基本结构: ...
I²C 是Inter-Integrated Circuit的缩写,它是一种两线接口,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。 内部结构如下图: 速率: 普通模式:100kHz; 快速模式:400kHz; 高速模式:1.0MHZ,3.4MHz; I2C协议: SDA传输数据是大端传输,每次传输8bit,即一字节。
主要应用:片内外设功能(I2C的SCL、SDA) 输入一般用浮空输入,如果要使引脚在悬空状态时电平确定就用上拉/下拉输入,如果要输入连续的模拟量就用模拟输入。 输出一般用推挽输出,如果要调节输出的电平就用开漏输出,如果有端口复用的情况就用复用输出模式。