首页 理论教育 TivaI2C主机操作说明

TivaI2C主机操作说明

时间:2023-11-17 理论教育 版权反馈
【摘要】:I2CMasterBusBusy()如果连接到一个含有多个主机的I2C总线上,TivaI2C主机必须在尝试启动传输前,先行调用I2CMasterBusBusy()来确定是否处于忙状态。一旦这个函数指示I2C主机不再处于忙碌状态,则说明总线传输已经完成,此时可用I2CMasterErr()来检查错误,以确定数据是否发送完成或已准备好。如果在突发传输中检测到错误,则可使用停止命令来调用I2CMasterControl()函数。对于中断传输,则需注册一个I2C器件的中断处理程序并使能I2C主机中断,使之在主机不再忙碌时产生中断。

TivaI2C主机操作说明

一般执行步骤如下:

(1)I2CMasterInitExpClk()

首先调用I2CMasterInitExpClk()来初始化I2C主机模块,设置总线速度和使能主机模块。

(2)I2CMasterSlaveAddrSet()

采用I2CMasterSlaveAddrSet()函数设置从机地址,用于定义传输是一次发送(从主机写数据到从机)还是一次接收(从主机读取从机的数据)。

(3)I2CMasterBusBusy()

如果连接到一个含有多个主机的I2C总线上,TivaI2C主机必须在尝试启动传输前,先行调用I2CMasterBusBusy()来确定是否处于忙状态。

(4)I2CMasterDataPut()

在确定总线处于非忙碌状态之后,可调用I2CMasterDataPut()函数来发送数据。

(5)I2CMasterControl

在完成以上步骤后,可调用I2CMasterControl()函数的以下任一命令来启动总线上的数据传输:

①I2C_MASTER_CMD_SINGLE_SEND。(www.xing528.com)

②I2C_MASTER_CMD_SINGLE_RECEIVE。

③I2C_MASTER_CMD_BURST_SEND_START。

④I2C_MASTER_CMD_BURST_RECEIVE_START。

这些命令将会引起总线的主机仲裁、驱动起始序列、发送从机地址与方向位。然后,其余的传输用轮询或中断的方式进行。

(6)I2CMasterErr()

对于一次发送和接收的情况,轮询方式包括从I2CMasterBusy()返回的循环。一旦这个函数指示I2C主机不再处于忙碌状态,则说明总线传输已经完成,此时可用I2CMasterErr()来检查错误,以确定数据是否发送完成或已准备好。

(7)I2CMasterDataGet()

如果没有错误,则说明数据发送完成或已经准备好,这时可用I2CMasterDataGet()函数来读取数据。

另外,对于突发数据发送和接收的情况,每发送与接收完一个字节,或发送或接收完最后一个字节,轮询方式都会调用I2CMasterControl()函数。如果在突发传输中检测到错误,则可使用停止命令来调用I2CMasterControl()函数。

对于中断传输,则需注册一个I2C器件的中断处理程序并使能I2C主机中断,使之在主机不再忙碌时产生中断。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈