找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 850|回復: 0
打印 上一主題 下一主題
收起左側

430單片機函數(shù)庫1

[復制鏈接]
跳轉到指定樓層
樓主
ID:1127529 發(fā)表于 2024-6-29 12:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
調用順序
1、USCI_B_I2C_initMaster
一些基礎配置(速率、地址等)

     USCI_B_I2C_masterSendSingleByte()
      主單字節(jié)傳輸

     USCI_B_I2C_masterSendMultiByteStart()
     USCI_B_I2C_masterSendMultiByteNext()
     USCI_B_I2C_masterSendMultiByteFinish()
     USCI_B_I2C_masterSendMultiByteStop()
      主多字節(jié)傳輸

     USCI_B_I2C_masterReceiveSingleStart()
     USCI_B_I2C_masterReceiveSingle()
      主字節(jié)接收

     USCI_B_I2C_masterMultiByteReceiveStart()
     USCI_B_I2C_masterReceiveMultiByteNext()
     USCI_B_I2C_masterReceiveMultiByteFinish()
     USCI_B_I2C_masterReceiveMultiByteStop()
     主多字節(jié)接收

    USCI_B_I2C_masterSendSingleByteWithTimeout()
   超時單字節(jié)主傳輸

   USCI_B_I2C_masterSendMultiByteStartWithTimeout()
   USCI_B_I2C_masterSendMultiByteNextWithTimeout()
   USCI_B_I2C_masterReceiveMultiByteFinishWithTimeout()
   USCI_B_I2C_masterSendMultiByteStopWithTimeout()
   超時多字節(jié)主接收

   USCI_B_I2C_masterReceiveSingleStartWithTimeout()
  超時單字節(jié)主接收


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

基礎庫函數(shù)
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 模塊傳輸一個字節(jié)

(數(shù)值)USCI_B_I2C_slaveGetData (uint16_t baseAddress);接收一個已經(jīng)發(fā)送到 i2c 模塊的字節(jié)

(數(shù)值)USCI_B_I2C_isBusBusy (uint16_t baseAddress);查看I2C是否占線
(數(shù)值)USCI_B_I2C_isBusy (uint16_t baseAddress);(在將來的版本中可能會刪除 )表示 I2C 是否忙碌。

(數(shù)值)USCI_B_I2C_masterIsStopSent (uint16_t baseAddress);表明 stop 是否被發(fā)送
(數(shù)值)USCI_B_I2C_masterIsStartSent (uint16_t baseAddress);顯示 start 是否已經(jīng)發(fā)送

USCI_B_I2C_masterSendStart (uint16_t baseAddress);主模塊使用此函數(shù)啟動啟動

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 中斷源

(數(shù)值)USCI_B_I2C_getInterruptStatus (uint16_t baseAddress, uint16_t mask);獲取當前中斷狀態(tài)

USCI_B_I2C_masterSendSingleByte (uint16_t baseAddress, uint8_t txData);從主機到從機進行單字節(jié)傳輸

(數(shù)值)USCI_B_I2C_masterReceiveSingleByte (uint16_t baseAddress);從服務器接收字節(jié)信號

(bool)USCI_B_I2C_masterSendSingleByteWithTimeout (uint16_t baseAddress, uint8_ttxData, uint32_t timeout);用超時從主機到從機進行單字節(jié)傳輸

USCI_B_I2C_masterSendMultiByteStart (uint16_t baseAddress, uint8_t txData);開始從主機到從機的多字節(jié)傳輸

(bool)USCI_B_I2C_masterSendMultiByteStartWithTimeout (uint16_t baseAddress, uint8_ttxData, uint32_t timeout);用超時啟動從主到從的多字節(jié)傳輸。

USCI_B_I2C_masterSendMultiByteNext (uint16_t baseAddress, uint8_t txData);繼續(xù)從主機到從機的多字節(jié)傳輸

(bool)USCI_B_I2C_masterSendMultiByteNextWithTimeout (uint16_t baseAddress, uint8_ttxData, uint32_t timeout);用超時繼續(xù)從主機到從機的多字節(jié)傳輸。

USCI_B_I2C_masterSendMultiByteFinish (uint16_t baseAddress, uint8_t txData);完成從主機到從機的多字節(jié)傳輸

(bool) USCI_B_I2C_masterSendMultiByteFinishWithTimeout (uint16_t baseAddress, uint8_ttxData, uint32_t timeout);用超時完成從主機到從機的多字節(jié)傳輸。

USCI_B_I2C_masterSendMultiByteStop (uint16_t baseAddress);在從主機到從機的多字節(jié)傳輸結束時發(fā)送停止字節(jié)。

(bool) USCI_B_I2C_masterSendMultiByteStopWithTimeout (uint16_t baseAddress, uint32_ttimeout);在多字節(jié)傳輸結束時用超時將停止字節(jié)從主機發(fā)送到從機。

USCI_B_I2C_masterReceiveMultiByteStart (uint16_t baseAddress);在主端開始多字節(jié)接收

(數(shù)值)USCI_B_I2C_masterReceiveMultiByteNext (uint16_t baseAddress);在主端一次啟動一個字節(jié)的多字節(jié)接收。
(數(shù)值)USCI_B_I2C_masterReceiveMultiByteFinish (uint16_t baseAddress);在主端完成多字節(jié)接收

(bool) USCI_B_I2C_masterReceiveMultiByteFinishWithTimeout (uint16_t baseAddress,uint8_t ∗rxData, uint32_t timeout);在主端用超時完成多字節(jié)接收

USCI_B_I2C_masterReceiveMultiByteStop (uint16_t baseAddress);在主端的多字節(jié)接收結束時發(fā)送停止。

USCI_B_I2C_masterReceiveSingleStart (uint16_t baseAddress);在主端啟動一個單字節(jié)接收。

(bool) USCI_B_I2C_masterReceiveSingleStartWithTimeout (uint16_t baseAddress, uint32_ttimeout);在主端用超時啟動單個字節(jié)接收。

(數(shù)值)USCI_B_I2C_masterReceiveSingle (uint16_t baseAddress);接收一個已經(jīng)發(fā)送到 i2c 主模塊的字節(jié)。

(數(shù)值)uint32_t USCI_B_I2C_getReceiveBufferAddressForDMA (uint16_t baseAddress);在DMA模式下獲取rx的緩沖區(qū)地址

(數(shù)值)USCI_B_I2C_getTransmitBufferAddressForDMA (uint16_t baseAddress);在DMA模式下獲取tx的緩沖區(qū)地址。






評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表