Arm i2c nack或来自从机的ack on地址

Arm i2c nack或来自从机的ack on地址,arm,embedded,microcontroller,i2c,Arm,Embedded,Microcontroller,I2c,我正在尝试使用i2c协议与模块接口。 模块(从)地址为0x48 我正在尝试的是: 将0x48(其地址)发送到模块。之后我会收到一封确认信 但似乎我没有收到确认,还是我错了 如果我没有得到一个正确的确认,它是怎么来的? 我所做的就是重置模块,使其处于已知状态,然后我只发送0x48(0x00作为数据)。 信息:我使用的是32位ARM控制器和1k5上拉电阻器 我在示波器上看到的图像: 当您看到范围上的ACK(从您捕获的内容)时,问题肯定是您的控制器软件存在一些问题。但是如果没有任何代码或者你在你的软件

我正在尝试使用i2c协议与模块接口。 模块(从)地址为0x48

我正在尝试的是: 将0x48(其地址)发送到模块。之后我会收到一封确认信

但似乎我没有收到确认,还是我错了

如果我没有得到一个正确的确认,它是怎么来的? 我所做的就是重置模块,使其处于已知状态,然后我只发送0x48(0x00作为数据)。 信息:我使用的是32位ARM控制器和1k5上拉电阻器

我在示波器上看到的图像:

当您看到范围上的ACK(从您捕获的内容)时,问题肯定是您的控制器软件存在一些问题。但是如果没有任何代码或者你在你的软件中做什么,我们就不能说更多…@greydet你说这是对范围的确认。但我认为这是NACK还是我错了?这对我来说非常重要,我发现一次尝试一个值0x00到0x7F(左移1)并查看是否有ack,然后尝试左移1或1(读与写)并查看是否有ack。这些峰值非常难看…是什么原因造成的?通常,我会尝试从0x00到0x7F的所有地址(左移一个地址,或用1表示读或写,或不用1表示读或写)来扫描总线,看看外面有什么。有时人们使用预移位的7位地址,有时人们使用后移位地址,那么您的地址真的是0x48、0x90或0x24吗?我在软件中做的是:伪代码:resetModule();设置地址(0x48);while(1){sendData(0x00);while(masterBusy);}