wengh2016 发表于 2024-3-4 11:54

在软件实现上,可以通过编程技巧使得IIC通信看似可以被打断。比如,通过优先级更高的中断服务例程暂时挂起IIC通信过程,待中断处理完成后再恢复IIC通信。

uptown 发表于 2024-3-4 16:26

使用带有中断功能的IIC控制器或在软件层面实现中断服务程序来处理IIC通信过程中可能出现的中断情况。

bestwell 发表于 2024-3-5 08:49

在MCU(微控制器)中,当I²C正在执行数据传输时,如果有更高优先级的中断请求到来,CPU可以响应中断并暂时挂起I²C事务的处理,执行更高优先级的任务。一旦中断服务程序执行完毕,CPU返回到原始上下文时,I²C传输可以通过软件重新启动或者继续剩余的传输步骤。

1988020566 发表于 2024-3-5 11:22

IIC协议本身不支持中断               

jimmhu 发表于 2024-3-5 13:17

I2C是一种同步串行通信协议,它依靠SCL时钟线的边沿来触发数据在SDA线上的传输。当一个设备开始传输数据时,它将占用总线直到当前传输结束,在此期间其他设备必须等待而不能进行传输。

alvpeg 发表于 2024-3-5 15:47

在I2C传输过程中,如果主设备收到中断请求,可以暂停与从设备的数据传输,处理中断事件。处理完中断事件后,主设备可以继续与从设备进行数据传输。这种情况下,I2C数据传输是被打断的。

youtome 发表于 2024-3-5 20:21

当主机发起起始信号后,总线就处于占领状态,此时,任何其他的操作都不能打断数据的传输,直到主机发出停止信号,总线才恢复空闲状态。然而,如果在数据传输过程中,主机想要停止传输,它可以发送一个停止信号来中断传输。

Pretext 发表于 2024-3-5 20:38

使用空闲时间进行传输,或者使用DMA。

maqianqu 发表于 2024-3-6 07:24

如果IIC通信确实需要被打断,设计者需要考虑由于打断而引入的时序问题。这可能涉及到重新同步或者重新发起通信过程等问题。

软核硬核 发表于 2024-3-6 09:17

如果设备在传输过程中没有在预期的时间内检测到应答信号,它将认为发生了错误,并可能重新传输。

lzbf 发表于 2024-3-7 10:51

虽然I2C总线在传输过程中不能被其他设备打断,但是可以通过发送停止信号或发送不匹配的地址来中断传输。

可怜的小弗朗士 发表于 2024-3-21 13:11

I2C是基于时钟的总线,可以被打断

V853 发表于 2024-6-4 06:49

在重新传输过程中,电流传输被中断,直到设备恢复对总线的控制并完成传输。

chenjun89 发表于 2024-6-4 07:59

IIC每次通信前都必须先有起始信号,所以不得行,你可以用硬件DMA赖发送数据。

天天向善 发表于 2024-6-6 23:49

IIC(Inter-Integrated Circuit)在传输过程中是可被打断的,具有总线冲突检测和处理机制,以应对打断情况,保障数据传输的正确性和稳定性。

芯路例程 发表于 2024-6-8 09:50

在每次通信之前,iic 必须有一个起始信号,所以你不能这样做,你可以使用硬件 dma 发送数据。

埃娃 发表于 2024-6-28 18:15

这个应该可以会被打断

AIsignel 发表于 2024-7-4 12:32

如果使用硬件 iic + 中断,则可能会被中断

LinkMe 发表于 2024-7-5 22:16

如果使用硬件、 iic、 + 、中断,则可能会中断

LEDyyds 发表于 2024-7-9 17:20

可以被打断,
页: 1 [2] 3
查看完整版本: IIC在传输过程中是否可被打断