i2c设置中断的原因?

IIC接收数据只是存到指定的寄存器中,如果你不取走,下次再接收数据就直接冲掉了,所以IIC接收到数据之后给CPU中断,中断服务程序去处理这些收到的数据!

查找中断源是一种保险的做法,要是由于其他的哪几种原因产生了中断,但是此时数据并没有接收完,中断服务子程序去处理数据了,结果就不对了!如果你自己敢保证不会出现哪几种情况就可以完全不用写!


读写操作
发送模式中当发送了数据时, IIC 总线数据移位在(IICDS)寄存器收到新数据之前 IIC 总线接口将会一直等待。在新数据写入到寄存器之前,SCL 线将会保持为低,然后在其写入后释放。S3C2440A 应该等待中断来确定当前数据发送的完成。在 CPU 收到中断请求后,需要再次写一个新数据到 IICDS 寄存器中。接收模式中当收到了数据时,在读取 IICDS 寄存器前 IIC 接口将会一直等待。在新数据读出前,SCL 线将会保持为低,然后在其读取后释放。S3C2440A 应该等待中断来确定当前数据接收的完成。在 CPU 收到中断请求后,
需要从 IICDS 寄存器中读取数据。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32是一款广泛使用的微控制器系列,其中包括了I2C(Inter-Integrated Circuit)总线作为通信接口之一。I2C通信是一种串行通信协议,用于连接各种外设和芯片。在STM32中,I2C地址中断是指当I2C总线上的某个设备的地址被检测到时触发的中断I2C总线上的每个设备都有一个唯一的地址,这意味着STM32可以与多个设备进行通信。当STM32启动I2C通信时,它会发送一个开始信号,并包含所需通信设备的地址。如果该设备的地址与总线上的某个设备地址匹配,那么就会触发I2C地址中断。这通常用于通知MCU该设备正在进行通信,并触发后续的数据传输。 通过I2C地址中断,STM32可以快速识别设备并进行相应的处理。以传感器为例,当传感器准备好数据并且希望将其传输到STM32时,传感器会发送一个信号,并在I2C总线上广播自己的地址。当STM32检测到该地址时,它会触发I2C地址中断,并相应地读取传感器发送的数据。 在STM32中设置I2C地址中断通常需要配置相应的I2C控制寄存器和中断控制器。首先,我们需要设置I2C控制器的时钟频率和通信速度。然后,我们还需要配置STM32的中断控制器,以使其能够正确响应I2C地址中断。具体的配置步骤可以参考STM32的官方文档或相关的开发手册。 总的来说,STM32通过使用I2C地址中断来实现与多个设备的通信。这种中断机制可以及时地通知STM32所需通信设备的存在,并确保正确读取或写入数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值