HC32F460 IIC访问总结

I²C 总线由一根时钟线( SCL),一根数据线( SDA)构成。所有的连接器件必须是漏

极开路输出。 SCL, SDA 线外接上拉电阻。电阻阻值取决于系统应用。

通常情况下,一个完整的通信过程包括下列 4 部分:

  1. 开始条件

  2. 地址传送

  3. 数据传送

  4. 停止条件

1,iic 的初始化过程:

在开始发送或者接收数据时,必须下图所示的步骤进行初始化。

  1. PE 位设定为 0。
  2. SWRST 设定为 1,通信复位
  3. PE 位设定为 1,内部状态复位
  4. 设定从机地址格式和地址
  5. 设定波特率
  6. 根据需要设定控制寄存器功能及中断
  7. SWRST 位设定为 0,解除内部状态复位。
  8. 初始化结束。可发送接收数据。

2,iic 数据的发送和接收:

在I2C(Inter-Integrated Circuit)通信中,通常由主机发起通信,但I2C协议也支持从机主动发送数据给主机,从机可以通过以下步骤主动向主机发送数据:

启动通信 :从机等待主机发送启动信号(Start Condition),即在时钟线SCL保持高电平期间,数据线SDA由高电平向低电平跳变。后面和主从数据交互一样的。

a,iic地址模式

ACK/NACK深入了解:

数据传送过程中通过 SCL 时钟同步机制实现握手。从机在传送完一帧数据后(包含ACK 位),将 SCL 时钟线维持在低电平。在这种情况下, SCL 时钟的低电平让主机进入等待状态,直到从机释放 SCL 线。

从机什么时候释放 SCL 线

在第 9 个时钟下降后将 SCL 线保持为低电平。此时必须通过读 I2C_DRR 寄存器来结束通信来释放 SCL 线 。在 I2C_SR.RFULLF 标志位为"1"的状态下, 如果不读取 I2C_DRR 寄存器的数据, 而立即接收下一个数据, SCL 时钟就在下一次 RFULLF 标志位变"1"的前一个 SCL 时钟自动保持为低电平。

结束通信标志:如果总线上从机接收数据,在第 9 个时钟周期不响应主机,从机必须发送 NACK。如果总线上主机接收数据,第 9 个周期发送 NACK,从机接收到 NACK,从机停止发送数据。

3,iic相关寄存器说明:

中断相关控制寄存器:

获取中断状态相关的bit位:

状态清0:

设置时钟/波特率:

iic的中断处理:

关于华大单片机的I2C通信中的EEI(EEPROM Error Interrupt)、TEI(Transmitter Empty Interrupt)、TXI(Transmitter Interrupt)和RXI(Receiver Interrupt)这些中断,它们分别用于指示不同的I2C通信状态和错误。

EEI(EEPROM Error Interrupt) :当I2C通信过程中发生EEPROM相关的错误时,如写保护、页错误等,会触发EEI中断。

TEI(Transmitter Empty Interrupt) :当I2C发送缓冲区(TX缓冲区)为空时,触发TEI中断。这通常发生在发送连续数据包时,当发送缓冲区清空时,触发TEI中断。

TXI(Transmitter Interrupt) :当I2C发送缓冲区(TX缓冲区)中有数据需要发送时,触发TXI中断。这通常发生在发送数据包的开始或中间,当发送缓冲区中有数据时,触发TXI中断。

RXI(Receiver Interrupt) :当I2C接收缓冲区(RX缓冲区)中有数据接收时,触发RXI中断。这通常发生在接收数据包的过程中,当接收缓冲区中有数据时,触发RXI中断。

这些中断的触发条件由I2C模块内部的状态机和逻辑决定,通过读取相关的状态寄存器可以获取这些中断的状态。在中断服务程序中,可以根据这些中断的状态来判断通信状态和错误情况,并进行相应的处理。

具体的I2C中断处理和配置需要参考华大单片机的数据手册和开发文档,这些文档会提供更详细的关于中断寄存器、中断配置和中断处理流程的信息。由于华大单片机的型号和版本可能有所不同,具体的中断配置和处理方式可能会有所差异。

相关推荐
工业互联网专业3 小时前
汇编与接口技术:8259中断实验
汇编·单片机·嵌入式硬件·8259中断实验
brave and determined3 小时前
国产MCU学习Day6——CW32F030C8T6: I2C功能详解与应用案例
单片机·eeprom·i2c·cw32f030c8t6·cw32·cw32f030·中断读取eeprom
梁山1号3 小时前
【ESP32】3.串口的发送与接受
单片机·物联网
KaiGer6663 小时前
AUTOSAR进阶图解==>AUTOSAR_SWS_V2XFacilities
单片机·汽车·嵌入式·autosar
desssq5 小时前
SPI通信协议
单片机·嵌入式硬件
星辰pid7 小时前
STM32实现四自由度机械臂(SG90舵机)多功能控制(软件篇freertos)
stm32·单片机·嵌入式硬件·机械臂
森焱森13 小时前
水下航行器外形分类详解
c语言·单片机·算法·架构·无人机
小殷学长15 小时前
【单片机毕业设计17-基于stm32c8t6的智能倒车监测系统】
stm32·单片机·课程设计
TESmart碲视16 小时前
HKS201-M24 大师版 8K60Hz USB 3.0 适用于 2 台 PC 1台显示器 无缝切换 KVM 切换器
单片机·嵌入式硬件·物联网·游戏·计算机外设·电脑·智能硬件
small_wh1te_coder17 小时前
硬件嵌入式学习路线大总结(一):C语言与linux。内功心法——从入门到精通,彻底打通你的任督二脉!
linux·c语言·汇编·嵌入式硬件·算法·c