調用順序
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的緩沖區地址。
|