找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 232|回复: 0
打印 上一主题 下一主题
收起左侧

430单片机函数库1

[复制链接]
跳转到指定楼层
楼主
ID:1127529 发表于 2024-6-29 12:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
调用顺序
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的缓冲区地址。






评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表