USB设备交互函数详解:批量输入与输出

需积分: 45 28 下载量 90 浏览量 更新于2024-08-06 收藏 18.87MB PDF 举报
"LPC178x下册批量输入输出函数-USB设备交互" 在LPC178x微控制器的USB主机应用中,与USB设备进行数据交换是通过特定的函数来实现的。批量输入和输出是USB通信中常见的两种传输类型,用于处理大量连续数据的传输。 (1)批量输出函数: 批量输出主要涉及`usbHostBulkWrite()`函数,该函数用于向设备的批量传输端点发送数据。函数原型为`USB_INT8U usbHostBulkWrite(pucData, uiLength, ucMaxTry)`。`pucData`参数是指向发送数据缓冲区的指针,`uiLength`表示要发送的数据长度,而`ucMaxTry`是当发送数据出现错误时的最大重试次数,若设置为0,则表示不进行重试。如果发送成功,函数返回`USB_ERR_SUCESS`,否则返回其他错误代码,具体可参考表11.14了解详细的错误信息。这个函数必须在设备成功枚举之后才能调用,以确保与USB设备的有效通信。 (2)批量输入函数: 批量输入则对应于`usbHostBulkRead()`函数,它用于从USB设备的批量端点读取数据。函数原型同样为`USB_INT8U usbHostBulkRead(pucData, uiLength, ucMaxTry)`,这里的`pucData`是接收数据的缓冲区,`uiLength`为期望接收的数据长度,`ucMaxTry`为接收数据出错时的最大重试次数。使用方式和批量输出函数类似,但用于接收而非发送数据。同样,此函数也应在设备枚举完成后调用。 (3)中断输入输出函数: 中断传输是一种针对实时性要求较高的数据传输方式。LPC178x提供了`usbHostIntrWrite()`和`usbHostIntrOut()`两个函数来向中断端点写入数据,以及`usbHostBulkRead()`和`usbHostBulkIn()`来读取中断端点的数据。虽然这两个写入函数和读取函数名字不同,但它们的功能和用法基本相同,由其他函数宏定义实现。在介绍时,通常会统一使用`usbHostIntrWrite()`和`usbHostBulkRead()`。 这些函数的使用是USB主机驱动程序设计的关键部分,允许用户根据需要与USB设备进行高效的数据交互。在实际应用中,开发者需根据设备的配置和传输需求选择合适的函数,并正确处理可能发生的错误情况,以保证USB通信的稳定性和可靠性。 请注意,上述信息仅涵盖了LPC178x系列微控制器USB通信中的批量和中断传输部分,LPC178x还包含了其他功能部件,如E2PROM存储器和外部存储器控制器(EMC),这些功能部件对于构建完整的嵌入式系统同样至关重要。例如,E2PROM存储器可以用于非易失性数据存储,而EMC则用于管理外部的SRAM、SPI闪存等存储设备的访问,这些将在其他章节中详细讨论。