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
可以被打断,