LPC178x/177x USB端点2数据接收与E2PROM操作实现

需积分: 45 28 下载量 194 浏览量 更新于2024-08-06 收藏 18.87MB PDF 举报
本资源主要关注于LPC178x/177x平台的USB设备驱动开发,特别是涉及数据结构和中断处理的部分。标题“设置收发数据结构体变量函数”与“逻辑端点2接收数据中断处理函数”表明了这段代码的核心功能是管理和处理USB设备的数据传输,特别是在接收数据的过程中。 在程序清单10.11中,`ep02RxlenSet`函数用于配置逻辑端点2的数据接收。它设置了接收长度(ulSetLen),清零当前收到的字节数(Usb.Cnt),并将接收缓冲区的指针(pucRcvBuf)保存到结构体Usb中,并标记接收是否已完成(Usb.bRecFinish)。这个函数在准备接收数据时被调用,为后续的数据接收做好准备。 程序清单10.12中的`__usbDevEp2RxDone`函数是逻辑端点2的接收数据中断处理函数。当数据接收过程发生时,这个中断处理程序被触发。首先,通过`__usbDevSelectClrIntEndpoint(4)`清除端点的中断标志,然后检查已接收到的字节数(Usb.Cnt)与预设长度(Usb.Len)的关系。如果已接收字节数达到或超过预期长度,就将`Usb.bRecFinish`置为1,表示接收已完成,函数返回。 中断处理函数中,通过循环结构控制接收过程,计算剩余需要接收的字节数(ulLeftLen),并根据剩余字节数决定一次性读取64个字节还是读取小于64的剩余字节。通过`usbDevReadEndpoint`函数从USB设备读取数据,更新计数器Usb.Cnt。这个函数体现了中断驱动编程的基本原理,即在接收数据的中断中逐块处理数据,直到全部接收完毕。 这部分代码与章节5的内容不直接相关,但可以推测LPC178x/177x平台可能提供了USB接口,因此这些数据结构和函数是在这个硬件平台上的USB通信管理的基础。对于LPC178x/177x的开发者来说,理解如何处理USB数据流以及如何在中断上下文中有效地操作数据结构是非常重要的,因为它关系到系统的实时性和性能。 在整个开发过程中,开发者还需要考虑E2PROM(电可擦除只读存储器)和外部存储器控制器(EMC)的使用,虽然章节5有提及,但这里的重点在于USB驱动程序设计,尤其是在处理数据传输和中断管理方面。