前言我朋友一台dellg16购买时直接安装了linux系统,但是linux上没有官方的键盘控制中心,所以无法控制键盘灯光,于是我就想着能不能逆向一下键盘的协议,然后自己写一个控制键盘灯光的程序。我自己的外星人笔记本是m16,所以我就先从m16开始逆向。USB协议分析通过chatgpt得知,AlienFX设备通常通过USB接口连接到计算机。键盘的灯光控制是通过HID(人机接口设备)协议进行的。当你使用AlienFX软件时,这些程序会发送特定的命令到键盘,告诉它如何设置灯光效果。现在wireshark已经支持HID协议的解析,所以我们可以直接使用wireshark来分析USB协议。在安装wires
环境:AppleM1MacOSSonoma14.1.1软件:AndroidStudioGiraffe|2022.3.1Patch3设备:小米10Android13一、创建测试项目安卓HelloWorld项目:安卓HelloWorld项目二、数据线连接手机1.手机开启开发者模式参考:小米手机MIUI10打开开发者选项模式的详细步骤-百度经验2.连接手机 我的Mac是没有USB接口的,这里是外接拓展坞,再连接手机进行调试3.进入AndroidStudio 打开AndroidStudio就能看到以连接的设备
动态规划3.0动态规划---简单多状态dp问题1.按摩师(打家劫舍Ⅰ的变形)2.打家劫舍Ⅱ3.删除并获得点数4.粉刷房子5.买卖股票的最佳时机含冷冻期6.买卖股票的最佳时机含手续费7.买卖股票的最佳时机Ⅲ8.买卖股票的最佳时机Ⅳ动态规划---简单多状态dp问题1.按摩师(打家劫舍Ⅰ的变形)题目链接->Leetcode-面试题17.16.按摩师Leetcode-面试题17.16.按摩师题目:一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟
动态规划——线性DP最长不下降序列(LIS)暴力搜索:由可行的所有起点出发,搜索出所有的路径。但是深搜的算法时间复杂度要达到O(2n)O(2^n)O(2n)(每个数都有选或不选的两个选择),指数级的时间复杂度在本题中(n≤100n≤100n≤100)显然是不能接受的。那么再观察这个这棵递归树,可以发现其中有很多重复的地方。那么如何优化呢?首先可以使用数组将重复的部分记录下来,此后遇到相同的状态直接引用已经记录在数组中的数据即可,这样的方法叫做记忆化搜索,也叫剪枝(后面我们再细讲)。所以,如果按照上面的思路将需要计算的部分用数组记录,那么就可以省略那些重复的部分,所以最终我们需要计算的就只剩下以
背景以往项目使用串口通讯,通过空闲超时区分不同数据帧,但Window系统响应非实时,超时间隔不确定导致无法判断是否是完整的一帧数据,同时串口通讯还需要安装对应的驱动包,英文系统、繁体系统等可能安装失败导致用户体验差。USBHID可以实现免驱(使用中断方式进行数据传输),但通讯速率慢(FS62.5KB/s受硬件影响)会64字节分包发送数据,导致上位机很难区分一包完整数据。针对以上存在的问题USB虚拟串口能很好的提升通讯速率(FS 800KB/S受硬件影响)但需要安装芯片驱动,针对不同环境可能会导致安装驱动失败问题。WinUsb可以很好的解决以上问题、既能快速通讯、又能即插即用。 WinUsb
一、STM32CubeMX配置1、选择相应芯片(本文使用STM32F070F6P6)2、RCC时钟配置和Debug设置注:这里的PA9/10要重映射为PA11/12供USB接口使用(大部分芯片是分开的不用设置)3、配置USB注:这里的PID和VID默认就可以了(多设备时可以更改)4、时钟配置二、应用层代码编写1、修改usbd_hid.c文件①、修改USBD_HID_CfgFSDesc参数首先长度,跳转至定义修改为41U(之前是34U)端点数1改为2,接口协议2(鼠标)改为1(键盘),报告描述符长度重定义为HID_KEYBOARD_REPORT_DESC_SIZE 63U最后配置集合中增加一部
平台:win10笔记本自带一个摄像头再外接一个usb双目摄像头环境:vs2015+opencv3.4.10/opencv3.6.0测试代码:intcamera_test(intargc,char*argv[]){ //【1】从摄像头读入视频//这句是关键 VideoCapturecapture(0);//,cv::CAP_DSHOW,cv::CAP_MSMForcv::CAP_V4L2.括号内数字为1是调用usb摄像头,为0则是调用电脑自带摄像头 if(!capture.isOpened()){ cerr"ERROR!Unabletoopencamera\n"; system("pau
苹果AirPlay协议(protocol)允许通过WiFi将设备屏幕/音频镜像到远程设备(例如台式计算机)。如果iOS设备USB连接到台式计算机,是否可以通过USB连接而不是使用WiFi(例如使用usbmuxd)路由AirPlay负载? 最佳答案 较新的iOS设备还允许您通过USB镜像设备屏幕/音频。我相信该功能是在iOS8中引入的。您可以像这样使用QuickTime在macOS上使用它:打开QuickTime单击"file">“新电影录制”在录制按钮旁边的下拉菜单中,选择您的iPhone作为相机QuickTime现在将显示您的iO
本文将介绍如何利用STM32内置的Bootloader来实现USBDFU(DeviceFirmwareUpgrade)固件升级功能。首先,我们会介绍USBDFU的原理和工作流程。然后,我们将详细讲解如何配置STM32芯片以支持USBDFU,并提供相应的代码示例和步骤说明。1.引言USBDFU是一种通过USB接口进行设备固件升级的通用解决方案。它允许开发者通过USB连接来升级设备的固件,而无需使用外部编程器或者其他特殊的硬件设备。2.USBDFU的原理和工作流程USBDFU通过在设备内部Flash中提供一个Bootloader程序来实现固件升级。当设备进入DFU模式时,它将暂停运行当前固件,然后
1.HDMI简介HDMI(High-DefinitionMultimediaInterface),即高清多媒体接口。它能够同时传输视频和音频,简化了设备的接口和连线;同时提供了更高的数据传输带宽,可以传输无压缩的数字音频及高分辨率视频信号。HDMI接口在物理层使用TMDS标准传输音视频数据。2.LCD驱动点亮液晶显示屏需要按照一定的时序,示意图如下。使用FPGA驱动LCD屏幕时,是按照一行一行的形式点亮屏幕的,一个像素时钟点亮一个像素。其中,黑色部分传输控制数据或者其他数据,白色部分传输有效的像素数据。以下图为例,传输一幅图像的过程为:1.VSYNC拉高表示开始传输;;2.等待VBP行的扫描时