usb接口

STM32 USB HID-Mouse 基本功能

折月煮酒 提交于 2020-01-30 09:28:57
一,前言 USB Device HID Mouse功能, 实现基本的单击,移动功能 目标平台: STM32F103ZET CubeMX版本: STM32CubeMX 5.5.0 CubeMX FW版本:STM32Cube_FW_F1_V1.8.0 二,硬件连接 如图,USB Device 很多硬件,包括官方的开发板上会有一个使能管脚,注意此管脚的选通。F1系列MCU的DP管脚内置上拉,因此外部直连即可。 三,代码配置 参考代码详见 : GitHub: HID_Mouse 时钟配置后,选择USB Device , 标准HID即可,然后直接生成代码,就可以直接使用。 生成的报文描述符如下: 设备为指针,指定按键占用3 Bit , X Y 的偏移量分别占用 8 Bit (有符号) 对应鼠标上报的HID消息格式如下 /* * buffer[0] | bit 0 - Left Button * | bit 1 - Right Button * buffer[1] | Cursor Movement X axis (Signed from -127 to 127) * buffer[2] | Cursor Movement Y axis (Signed from -127 to 127) * buffer[3] | Wheel Vertical Movement * Origin-------

Hid Report Descriptor

馋奶兔 提交于 2020-01-29 09:43:26
  在USB中,USB HOST是通过各种描述符来识别设备的,有设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,报告描述符等等。USB报告描述符(Report Descriptor)是HID设备中的一个描述符,它是比较复杂的一个描述符。      USB HID设备是通过报告来给传送数据的,报告有输入报告和输出报告。输入报告是USB设备发送给主机的,例如USB鼠标将鼠标移动和鼠标点击等信息返回给电脑,键盘将按键数据数据返回给电脑等;输出报告是主机发送给USB设备的,例如键盘上的数字键盘锁定灯和大写字母锁定灯等。报告是一个数据包,里面包含的是所要传送的数据。输入报告是通过中断输入端点输入的,而输出报告有点区别,当没有中断输出端点时,可以通过控制输出端点0发送,当有中断输出端点时,通过中断输出端点发出。   而报告描述符,是描述一个报告以及报告里面的数据是用来干什么用的。通过它,USB HOST可以分析出报告里面的数据所表示的意思。它通过控制输入端点0返回,主机使用获取报告描述符命令来获取报告描述符,注意这个请求 发送到接口的,而不是到设备。一个报告描述符可以描述多个报告,不同的报告通过报告ID来识别,报告ID在报告最前面,即第一个字节。当报告描述符中没有规定报告ID时,报告中就没有ID字段,开始就是数据。更详细的说明请参看USB HID协议,该协议可从Http:/

STM32F103ZET6 - USB_HID -2 (IAP升级)

╄→гoц情女王★ 提交于 2020-01-29 01:17:35
* STM32F103ZET6 - USB_HID -2 (IAP升级) 前言: 记录下碰到的坑!! HID升级完成后, 有查看0X0801 0000 Memory内容,和bin文件是相同的; 按键触发跳转至APP, STM32正点原子精英版上的LED只亮后就死掉; 将连接电脑的USB断开后能正常跳转. ------------ 说明USB有干扰,在跳转前加入了关闭USB功能后,正常跳转; USBD_Stop(&hUsbDeviceFS);// 重点: 此处需关闭USB功能, 需要时再打开. 示例详解: (参考 : https://blog.csdn.net/u014803614/article/details/100033217) 基于硬件平台: STM32F103ZET6正点原子的精英板, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。 STM32CubeMX生成代码过程如下: 1>. 打开SWD - debug调试模式, STM32CubeMX生成的代码默认是没打开debug调试模式的 2>. 外部时钟配置, HSE选择为外部晶振 3>. CLOCK Configuration 配置如下: 选择HSE,PLL倍频为9, USB分频为1.5=48M 4>. USB功能选中 5>. USB_DEVICE --> 选择HID功能 .

电脑防盗新措施:能“杀死”电脑的USB线缆

梦想的初衷 提交于 2020-01-26 06:39:46
近期,有一名软件工程师设计了一种“kill cable”的USB线缆。当一台Linux笔记本电脑在公园、商场和网吧等公共场所从你的桌子上或膝盖上被人偷/抢走时,它可以自动触发预定义脚本,擦除电脑数据或者“杀死”电脑。 这种名为 BusKill 的电缆是由来自佛罗里达州奥兰多的软件工程师兼Linux系统管理员Michael Altfield所设计的。 具体来说就是将BusKill线缆的一端连接到你的Linux笔记本电脑,而另一端连接到你的腰带上,当有人将你的笔记本电脑从你的膝盖或桌子上拽下来时,BusKill线缆被迫与笔记本电脑断开,从而触发一个udev脚本(udev是Linux内核的设备管理器,处理硬件设备添加或删除等一系列事件),执行一系列预设操作。 这些预设操作可以是激活你的屏幕保护程序或关闭你的电子设备(使得攻击者在绕过你的笔记本屏保前无法访问任何数据),也可以是擦除设备数据或删除某些文件(杜绝敏感信息泄露)。 Altfield 表示:“当我们在公共场合使用笔记本电脑时,也许在软件层面会尽可能保护好自己,比如使用一个安全的VPN、双因素认证和密码自动填充功能,杜绝敏感信息泄露。但即便如此,你还可能面临物理层面的风险,有人可能会抢走你的笔记本电脑!” 不过,目前Altfield还没有售卖现成的BusKill线缆。在他的网站上,这位IT专家发布了制作该线缆的详细 介绍

树莓派使用免驱USB摄像头

為{幸葍}努か 提交于 2020-01-24 03:25:08
文章目录 学习记录 查看设备文件 使用相机拍照 显示视频效果 学习记录 树莓派使用免驱USB摄像头 使用命令 lsusb ,查询USB,插拔前后各用一次,找到USB口。 查看设备文件 使用命令 ls /dev/video* ,插拔前后各查询一次,得到设备文件。 使用相机拍照 安装fswebcam sudo apt-get install fswebcam 拍照 fswebcam /dev/video0 /home/pi/new/image.jpg /dev/video0 为设备文件, /home/pi/new/image.jpg 为存储路径 效果还不错。 显示视频效果 安装luvcview apt-get install luvcview 终端启动luvcview luvcview -s 1080x720 视频效果有点卡顿。 来源: CSDN 作者: 走南闯北声东击西 链接: https://blog.csdn.net/I_LOVE_MCU/article/details/103889820

Winsoft ComPort for Android USB Serial v3.1-SEO狼术

孤街浪徒 提交于 2020-01-23 22:52:36
  Winsoft ComPort for Android USB Serial v3.1 for Delphi & C++ Builder XE6 - 10.3 FULL SOURCE   适用于Android的Delphi和C ++ Builder XE6 USB USB v3.1的Winsoft ComPort-10.3完整源代码   用于Android的USB连接设备的Delphi和C ++ Builder串行通信库。   使用UsbSerial库   支持CP210x,CP2130,CDC,FTDI,PL2303和CH34x设备   无需特殊的root访问权限   可用于Delphi / C ++ Builder XE6-10.3   注册版本中包含的源代码   应用程序中的免版税分配   Delphi and C++ Builder serial communication library for USB connected devices for Android.   uses UsbSerial library   supports CP210x, CP2130, CDC, FTDI, PL2303 and CH34x devices   no special root access privileges needed   available for Delphi

Java_接口

耗尽温柔 提交于 2020-01-20 07:08:36
3.9、接口(重点) 3.9.1 、接口的基本概念 接口属于一种特殊的类,如果一个类定义的时候全部由 抽象方法和全局常量 所组成的话,那么这种类就称为接口,但是接口是使用interface关键字进行定义的。 interface A { // 定义接口 public static final String INFO = "Hello World ." ; public abstract void print() ; } interface B { public abstract void get() ; } 那么在接口之中,也同样存在了抽象方法,很明显,接口对象无法直接进行对象的实例化操作,那么接口的使用原则如下: · 每一个接口必须定义子类,子类使用implements关键字实现接口; · 接口的子类(如果不是抽象类)则必须覆写接口之中所定义的全部抽象方法; · 利用接口的子类,采用对象的向上转型方式,进行接口对象的实例化操作。 下面给出子类实现接口的语法格式: class 子类 [extends 父类] [implemetns 接口1,接口2,...] {} 通过格式可以发现,每一个子类可以同时实现多个接口,但是只能继承一个父类。 范例: 让子类实现接口 interface A { // 定义接口 public static final String INFO = "Hello

菜鸡的Java笔记 第二十四 - java 接口的基本定义

风流意气都作罢 提交于 2020-01-20 03:15:26
1.接口的基本定义以及使用形式 2.与接口有关的设计模式的初步认识 3.接口与抽象类的区别 接口与抽象类相比,接口的使用几率是最高的,所有的设计几乎都是围绕着接口进行的 但是要想把接口彻底弄明白,需要很长一段时间 接口是一种特殊的类,但是在接口里面的组成与类不同,比类的组成部分简单,主要由抽象方法和全局常量所组成 而接口使用 interface 关键字来定义 范例:定义一个接口 interface A{ // 定义了一个接口 public static final String MSG = "Hi"; public abstract void ptint(); } public class Interface{ public static void main(String args[]){ // 无法实例化,但是可以调用 System.out.println(A.MSG); } } 在以后不管学习到系统类库的使用还是自己写代码的时候,接口里面的主要组成(98%)都是抽象方法 当一个接口定义完成之后,需要遵循如下的步骤进行接口的使用 接口一定要定义子类,子类利用 implements 关键字来实现(实现这个词可以理解为继承)接口,一个子类可以同时实现多个接口 秒杀抽象类的单继承局限,一个抽象类只能够被一个子类所继承 接口的子类(如果不是抽象类)那么必须覆写接口中的全部抽象方法

STM32 USB 库介绍

余生长醉 提交于 2020-01-19 03:50:14
1 STM32 USB 库 2 STM32_USB-FS_Device_Driver-Low Layer 2.1 usb_regs 实现了硬件抽象层,提供了 usb 寄存器操作函数集合。 函数有两种调用的方式: 作为宏:_ 调用方式是:函数名(参数1,2…) 作为子程序:调用方式:函数名(参数1,2…) 2.2 usb_int 处理正确传输的中断服务程序。 低优先级中断,由 CTR_LP() 处理,用于控制模式、中断模式、批量模式(单缓冲区) 高优先级中断, CTR_HP() 处理,用于快速传输模式,比如同步模式、批量模式(双缓冲区) 2.3 usb_mem 用户内存区(user memory area) 和 USB 模块内存区 PMA(packet memory area)直接拷贝数据。 void UserToPMABufferCopy ( uint8_t * pbUsrBuf , uint16_t wPMABufAddr , uint16_t wNBytes ) ; void PMAToUserBufferCopy ( uint8_t * pbUsrBuf , uint16_t wPMABufAddr , uint16_t wNBytes ) ; 3 STM32_USB-FS_Device_Driver-medium Layer 3.1 usb_init 设备 usb

MCU_Wireshark USB 抓包过滤(抓特定端口地址)

感情迁移 提交于 2020-01-17 03:30:20
启动WiresharkUSB抓包的过程如下, 这里点击“开始”就可以进入抓包界面了。 不过,Wireshark启动USB抓包之后,会把同一总线的所有USB包抓下来,这个默认的设置对我们来说实在受不了,因为大多的包都是与我们分析无关的无效包。这时我们希望只抓我们需要的那个地址就好了,如何找到这个地址呢?方法如下, 此时,所有和这个地址(这里是20)相关的包就都抓取出来了。这里要注意,那个 usb.device_address==20 是有两个“=”号的, 来源: CSDN 作者: 丝贝视像-高精度计算机视觉 链接: https://blog.csdn.net/tanmx219/article/details/104011063