调用顺序
1、USCI_B_I2C_initMaster
一些基础配置(速率、地址等)
USCI_B_I2C_masterSendSingleByte()
主单字节传输
USCI_B_I2C_masterSendMultiByteStart()
USCI_B_I2C_masterSendMultiByteNext()
USCI_B_I2C_masterSendMultiByteFinish()
USCI_B_I2C_masterSendMultiByteStop()
主多字节传输
USCI_B_I2C_masterReceiveSingleStart()
USCI_B_I2C_masterReceiveSingle()
主字节接收
USCI_B_I2C_masterMultiByteReceiveStart()
USCI_B_I2C_masterReceiveMultiByteNext()
USCI_B_I2C_masterReceiveMultiByteFinish()
USCI_B_I2C_masterReceiveMultiByteStop()
主多字节接收
USCI_B_I2C_masterSendSingleByteWithTimeout()
超时单字节主传输
USCI_B_I2C_masterSendMultiByteStartWithTimeout()
USCI_B_I2C_masterSendMultiByteNextWithTimeout()
USCI_B_I2C_masterReceiveMultiByteFinishWithTimeout()
USCI_B_I2C_masterSendMultiByteStopWithTimeout()
超时多字节主接收
USCI_B_I2C_masterReceiveSingleStartWithTimeout()
超时单字节主接收
2、USCI_B_I2C_setSlaveAddress(USCI_B_I2C_initSlave())
3、USCI_B_I2C_setMode
4、USCI_B_I2C_enable
5、USCI_B_I2C_enableInterrupt
API相关
USCI_B_I2C_slavePutData()
从机传输API
USCI_B_I2C_slaveGetData()
从站接收API
基础库函数
USCI_B_I2C_initMaster (uint16_t baseAddress,USCI_B_I2C_initMasterParam∗param);初始化I2C
USCI_B_I2C_initSlave (uint16_t baseAddress,USCI_B_I2C_initSlaveParam ∗param);初始化I2C从模块
USCI_B_I2C_enable (uint16_t baseAddress);使能I2C模块
USCI_B_I2C_disable (uint16_t baseAddress);禁用I2C模块
USCI_B_I2C_setSlaveAddress (uint16_t baseAddress, uint8_t slaveAddress);设置 i2c 主机将在总线上寻找的地址
USCI_B_I2C_setMode (uint16_t baseAddress, uint16_t mode);设置 i2c 设备的模式。
USCI_B_I2C_slavePutData (uint16_t baseAddress, uint8_t transmitData);从 i2c 模块传输一个字节
(数值)USCI_B_I2C_slaveGetData (uint16_t baseAddress);接收一个已经发送到 i2c 模块的字节
(数值)USCI_B_I2C_isBusBusy (uint16_t baseAddress);查看I2C是否占线
(数值)USCI_B_I2C_isBusy (uint16_t baseAddress);(在将来的版本中可能会删除 )表示 I2C 是否忙碌。
(数值)USCI_B_I2C_masterIsStopSent (uint16_t baseAddress);表明 stop 是否被发送
(数值)USCI_B_I2C_masterIsStartSent (uint16_t baseAddress);显示 start 是否已经发送
USCI_B_I2C_masterSendStart (uint16_t baseAddress);主模块使用此函数启动启动
USCI_B_I2C_enableInterrupt (uint16_t baseAddress, uint16_t mask);使能中断
USCI_B_I2C_disableInterrupt (uint16_t baseAddress, uint16_t mask);禁用中断
USCI_B_I2C_clearInterrupt (uint16_t baseAddress, uint16_t mask);清除 i2c 中断源
(数值)USCI_B_I2C_getInterruptStatus (uint16_t baseAddress, uint16_t mask);获取当前中断状态
USCI_B_I2C_masterSendSingleByte (uint16_t baseAddress, uint8_t txData);从主机到从机进行单字节传输
(数值)USCI_B_I2C_masterReceiveSingleByte (uint16_t baseAddress);从服务器接收字节信号
(bool)USCI_B_I2C_masterSendSingleByteWithTimeout (uint16_t baseAddress, uint8_ttxData, uint32_t timeout);用超时从主机到从机进行单字节传输
USCI_B_I2C_masterSendMultiByteStart (uint16_t baseAddress, uint8_t txData);开始从主机到从机的多字节传输
(bool)USCI_B_I2C_masterSendMultiByteStartWithTimeout (uint16_t baseAddress, uint8_ttxData, uint32_t timeout);用超时启动从主到从的多字节传输。
USCI_B_I2C_masterSendMultiByteNext (uint16_t baseAddress, uint8_t txData);继续从主机到从机的多字节传输
(bool)USCI_B_I2C_masterSendMultiByteNextWithTimeout (uint16_t baseAddress, uint8_ttxData, uint32_t timeout);用超时继续从主机到从机的多字节传输。
USCI_B_I2C_masterSendMultiByteFinish (uint16_t baseAddress, uint8_t txData);完成从主机到从机的多字节传输
(bool) USCI_B_I2C_masterSendMultiByteFinishWithTimeout (uint16_t baseAddress, uint8_ttxData, uint32_t timeout);用超时完成从主机到从机的多字节传输。
USCI_B_I2C_masterSendMultiByteStop (uint16_t baseAddress);在从主机到从机的多字节传输结束时发送停止字节。
(bool) USCI_B_I2C_masterSendMultiByteStopWithTimeout (uint16_t baseAddress, uint32_ttimeout);在多字节传输结束时用超时将停止字节从主机发送到从机。
USCI_B_I2C_masterReceiveMultiByteStart (uint16_t baseAddress);在主端开始多字节接收
(数值)USCI_B_I2C_masterReceiveMultiByteNext (uint16_t baseAddress);在主端一次启动一个字节的多字节接收。
(数值)USCI_B_I2C_masterReceiveMultiByteFinish (uint16_t baseAddress);在主端完成多字节接收
(bool) USCI_B_I2C_masterReceiveMultiByteFinishWithTimeout (uint16_t baseAddress,uint8_t ∗rxData, uint32_t timeout);在主端用超时完成多字节接收
USCI_B_I2C_masterReceiveMultiByteStop (uint16_t baseAddress);在主端的多字节接收结束时发送停止。
USCI_B_I2C_masterReceiveSingleStart (uint16_t baseAddress);在主端启动一个单字节接收。
(bool) USCI_B_I2C_masterReceiveSingleStartWithTimeout (uint16_t baseAddress, uint32_ttimeout);在主端用超时启动单个字节接收。
(数值)USCI_B_I2C_masterReceiveSingle (uint16_t baseAddress);接收一个已经发送到 i2c 主模块的字节。
(数值)uint32_t USCI_B_I2C_getReceiveBufferAddressForDMA (uint16_t baseAddress);在DMA模式下获取rx的缓冲区地址
(数值)USCI_B_I2C_getTransmitBufferAddressForDMA (uint16_t baseAddress);在DMA模式下获取tx的缓冲区地址。
|