- 全部
- 默认排序
上拉电阻焊了,示波器也能看到波形,但程序就是卡在HAL_I2C_Master_Transmit的ACK等待里。问题往往不在电阻本身。1、电阻焊了不等于电路通了上拉电阻的作用是把SDA和SCL拉到高电平。但很多人忽略了一个事实:电阻两端必须真
I²C上拉越小,总线为何不一定更稳?小电阻能加快上升沿,也会增加器件拉低总线时必须吸收的电流 I²C的SDA和SCL依靠开漏输出拉低、上拉电阻释放为高。阻值过大时,Rp与总线电容形成的RC会拖慢上升沿;阻值过小时,低电平电流和VOL压降增大
I²C收到NACK,为何不能直接重发?NACK只是从机没有在第九时钟拉低SDA;事务是否结束,还取决于主机有没有发出合法STOP并释放总线 I²C读写遇到NACK,程序进入错误分支,延时几毫秒后直接重发地址。第一次偶发失败变成了后续全部失败
SDA被卡低,为何要先补9个时钟?I²C通信在字节中途被复位或干扰打断时,目标器件可能仍停在发送状态,继续把SDA拉低并等待剩余时钟。控制器重新启动后看到总线忙,直接发送START往往无效。规范给出的总线清除思路,是在SCL仍能释放为高的前
I²C总线SDA一直被拉低,为什么重启MCU也救不回来?MCU复位了,I²C驱动也重新初始化了,可一读传感器就返回 BUSY;示波器一看,SDA从上电到现在一直趴在低电平。继续重启主控往往没有用,因为被复位的是Controller,没被复位
想问问老师,硬件I2C接模块是不是要在SDA和SCL加上拉电阻?我看见别人这里接了,但是以前画51的时候模拟信号不需要上拉,但是对硬件I2C理解又不是很深刻
#include

扫码关注
















