USB主机函数详解:初始化、卸载与中断传输

需积分: 45 28 下载量 35 浏览量 更新于2024-08-06 收藏 18.87MB PDF 举报
"LPC178x下册-USB主机驱动与中断输入输出函数详解" 在LPC178x系列微控制器的USB主机驱动中,有两类关键的函数用于数据传输:初始化和卸载函数以及中断输入输出函数。这些函数对于实现与USB设备的有效交互至关重要。 首先,我们来看初始化和卸载函数。初始化函数`usbHostInitialize()`负责设置USB主机软件包,包括创建任务和信号量等系统资源,以便进行USB通信。相反,卸载函数`usbHostDeInit()`用于释放由`usbHostInitialize()`分配的资源。调用`usbHostDeInit()`意味着停止与USB设备的所有通信。这两个函数成对使用,当需要进行USB通信时调用初始化函数,不再需要通信时调用卸载函数。需要注意的是,设备被拔出并不意味着立即调用卸载函数,因为这样会导致设备在重新插入时无法自动枚举。 接下来,我们关注中断输出函数。中断输出涉及向USB设备的中断端点发送数据。这里有两个等效的函数,`usbHostIntrWrite()`和`usbHostIntrOut()`。它们的函数原型相同,只是函数名不同,用户可根据个人喜好选择。这个函数的主要任务是执行中断传输,将数据发送到设备的中断端点。函数接收发送数据的缓冲区地址、数据长度以及最大重试次数。返回值表示操作是否成功,其他返回值可能表示数据发送失败,并可参考相关错误代码表。 最后,中断输入函数,包括`usbHostIntrRead()`和`usbHostIntrIn()`,用于从USB设备的中断端点读取数据。同样,这两个函数在功能上是等价的,只是名字不同。它们从设备接收数据,使用者可以根据习惯选择。这些函数只能在设备成功枚举后调用,以确保数据读取的正确性。 在LPC178x系列微控制器中,USB主机驱动的中断输入输出函数是实现高效、可靠USB通信的基础。理解并正确使用这些函数,开发者可以构建出能够与各种USB设备有效交互的应用程序。同时,微控制器还包含了其他功能部件,如E2PROM存储器和外部存储器控制器(EMC),这些也提供了丰富的存储和扩展能力,为系统设计提供了更多可能性。