USB之API接口函数 本文档旨在帮助初学者理解USB接口的API接口函数。以下是对该文件内容的详细解释和知识点概括。 基本定义函数 在该文件中,我们可以看到两个基本定义函数:FIFO_RD_CHECK和FIFO_WR_CHECK。这两个函数用于检查USB设备的FIFO(First-In-First-Out)寄存器的状态。FIFO_RD_CHECK函数检查FIFO寄存器的ready状态,而FIFO_WR_CHECK函数检查FIFO寄存器的写入状态。 FIFO_RD_CHECK函数 FIFO_RD_CHECK函数的参数是BYTE类型的num,该参数指定了USB设备的 Endpoint_number。函数的实现过程中,首先将UCC寄存器设置为指定的Endpoint_number,然后将MISC寄存器的低3位设置为0,接着设置MISC寄存器的TX位为0。然后,该函数延迟3us,接着设置MISC寄存器的Request位为1。该函数延迟28us,检查MISC寄存器的状态,如果MISC寄存器的第6位为1,则设置FIFO_FLAG为0x0f,表示FIFO寄存器ready。 FIFO_WR_CHECK函数 FIFO_WR_CHECK函数的参数也是BYTE类型的num,该参数指定了USB设备的Endpoint_number。函数的实现过程类似于FIFO_RD_CHECK函数,但有所不同的是,该函数检查FIFO寄存器的写入状态,而不是ready状态。 Read_FIFO函数 Read_FIFO函数用于从FIFO寄存器中读取数据。该函数的参数有三个:Fifo_Addr、Fifo_Size和buffer。Fifo_Addr指定了FIFO寄存器的地址,Fifo_Size指定了要读取的数据大小,buffer是用于存储读取数据的数组。函数的实现过程中,首先设置MISC寄存器的Request位为1,然后从FIFO寄存器中读取数据,并将其存储在buffer数组中。 Write_FIFO函数 Write_FIFO函数用于将数据写入FIFO寄存器中。该函数的参数有三个:Fifo_Addr、SendLenth和buffer。Fifo_Addr指定了FIFO寄存器的地址,SendLenth指定了要写入的数据大小,buffer是用于存储要写入数据的数组。函数的实现过程中,首先设置MISC寄存器的Request位为1,然后将数据写入FIFO寄存器中。 Check_Real_Cmd函数 Check_Real_Cmd函数用于检查USB设备的命令状态。该函数的返回值是一个BOOL类型的值,表示USB设备的命令状态。如果MISC寄存器的第5位或第7位为1,则返回TRUE,否则返回FALSE。 Send_hand函数 Send_hand函数用于发送命令到USB设备。该函数的实现过程中,首先检查USB设备的命令状态,如果命令状态为真,则返回;否则,检查FIFO寄存器的写入状态,如果FIFO寄存器ready,则返回。 本文档提供了USB接口的API接口函数的详细解释和知识点概括,旨在帮助初学者更好地理解USB接口的工作原理和API接口函数的实现过程。
剩余15页未读,继续阅读
- 粉丝: 54
- 资源: 16
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助