
1 NUCLEO-WBA65RI的USB 设备和应用根据这个图,可以看到NUCLEO-WBA65RI直接从内核引接出了USB口,可以直接访问,这个可以在host也可以在device状态,速度是HS高速USB2.0. 2 USB HID 范例启动cubeIDE,导入DeviceHID工程 编译并下载到开发板上。 这个代码是展示了在 NUCLEO-WBA65RI 开发板上使用 USBX 协议栈的示例,演示如何开发基于裸机的 USB 设备人机接口(HID)鼠标应用。该应用模拟 USB HID 鼠标设备,代码提供了构建合规 USB HID 鼠标设备所需的所有设备描述符框架及相关类描述符报告。 应用主函数调用 MX_USBX_Device_Init () 初始化 USBX,并在 while 循环中调用 USBX_Device_Process。 应用每 10ms 逐步发送鼠标位置以定制 HID 功能。每 10ms,应用调用 GetPointerData () API 更新鼠标位置(x, y),并通过 ux_device_class_hid_event_set () API 发送报告缓冲区。 连接到 PC 主机时,NUCLEO-WBA65RI 枚举为 USB HID 鼠标设备。枚举阶段,设备必须向主机提供请求的描述符(设备描述符、配置描述符、字符串描述符),供主机驱动识别设备功能。枚举成功后,按下用户按钮,设备会发送 HID 报告,每次报告应使主机端鼠标光标移动一步。 鼠标移动逻辑的代码如下,可以根据自己的设计进行修改,
3 Wireshark的抓包3.1 安装相关组件 安装 Wireshark 时,需要确保勾选 USBPcap 组件,它是 Wireshark 用于 USB 协议抓包分析的插件 。安装完成后,可在 Wireshark 的 extcap 目录找到 USBPcapCMD.exe 执行文件 。 连接 USB 设备并启动 Wireshark,将需要抓包的 USB 设备连接到计算机,然后打开 Wireshark 软件,软件会显示出可用的网络接口列表 。 找到USB端口,这里是USBcap3 3.2 选择抓包接口 在 Wireshark 的接口列表中,找到与 USBPcap 相关的接口,双击该接口,在弹出界面中,若有需要,可以勾选要捕获数据的具体 USB 设备,然后点击确定 。 这里是第四个设备,也是一个HID设备 3.3 开始抓包 回到 Wireshark 主界面,点击左上角的 “开始捕获” 按钮(通常是鲨鱼鳍图标),即可开始对 USB 设备的通信数据进行抓取 。 这里按照步骤显示出初始化的六个步骤,下面是全部的endpoint配置和定义,如 3.4 抓包分析与过滤 抓包过程中或完成后,你可以在 Wireshark 界面查看捕获到的数据包。如果想让抓包界面显示精确的时间戳信息,可以在 “视图” 菜单中选择 “时间格式显示”,然后选择 “日期和时间” 选项 。 这是显示了前4个包的样子。 对应于某个包,可以仔细分析,包的数据,这里是32byte的数据。以及对应的响应时间。 不过,对于速度的计算和和捕捉,因为包太小了,而且包括了计算时间和响应时间,所以这个数据并不准确。不过足以显示正常的功能和高速usb的HS特性。 4 抓包的过程和显示这里的动图,显示了按button后控制模拟鼠标走了一个方形,然后后台的抓包状态过程。 |
【NUCLEO-WBA65RI评测】低功耗模式实测
【NUCLEO-WBA65RI评测】3.P2PServer学习双向数据交互
【NUCLEO-WBA65RI评测】物联网 LED
【NUCLEO-WBA65RI评测】蓝牙体温计
【NUCLEO-WBA65RI评测】Home Assistant 物联网心率计
【NUCLEO-WBA65RI评测】功耗测试
【NUCLEO-WBA65RI评测】介绍、环境搭建、工程测试
【NUCLEO-WBA65RI评测】使用最新STM32Cube Clang/LLVM工具链开发一个blink
【NUCLEO-WBA65RI评测】2.连接板卡,读取设备数据
【NUCLEO-WBA65RI评测】数据吞吐量例程测试