LPC1788 键盘扫描与HID类鼠标实现

需积分: 45 28 下载量 45 浏览量 更新于2024-08-06 收藏 18.87MB PDF 举报
"该资源主要涉及LPC1788微控制器的按键扫描处理函数和HID类设备的实现程序,用于模拟鼠标功能。" 在LPC178x系列微控制器的应用中,按键扫描处理是人机交互的重要环节。程序清单12.11展示了一个简单的按键扫描处理函数`keyServe(void)`。该函数的主要任务是检测并响应按键事件,特别是处理Shift键的状态,以及根据Shift键的状态改变其他按键的功能。当Shift键被按下并保持时,它会切换当前按键功能,例如在移动光标时改变方向。如果Shift键未被按下,左右箭头键控制光标的左右移动,上下箭头键控制光标的上下移动。这种设计使得用户能够灵活地与系统进行交互。 LPC1788作为USB从设备,并实现HID(Human Interface Device)类设备的角色,可以模拟鼠标行为。程序清单12.12展示了对应的`usbDevHIDServe(void)`函数,该函数用于处理USB HID类设备的输入事件。当HID设备枚举成功后,函数会读取当前光标的位置`GucCurX`和`GucCurY`,并与上一次的位置`GucLastX`和`GucLastY`进行比较,计算出变化值。这些变化值被放入接收缓冲区`pEpBuf`中并通过逻辑端点1的IN端点发送到USB主机,模拟鼠标的移动动作。在发送数据后,当前光标的位置被更新为最后的位置,以便下次计算差异。 此外,资源中还提及了LPC178x的其他功能部件,如E2PROM存储器和外部存储器控制器(EMC)。E2PROM存储器用于非易失性数据存储,具有描述、特性及详细的寄存器描述。而EMC则用于控制和访问外部存储设备,如SD卡或SRAM,提供了多种存储器类型的支持和丰富的特性。 这些内容展示了LPC1788微控制器在嵌入式系统中的应用,包括用户输入处理和USB设备通信,对于理解和开发基于LPC178x的嵌入式系统项目非常有帮助。开发者需要熟悉这些硬件接口和软件处理机制,才能有效地实现设备的控制和交互。