STM32 外置USB芯片学习笔记
STM32 和 PDIUSBD12学习笔记
一角残叶
人生如逆旅,我亦是行人
展开
-
利用串口和 USBTrace 的 USB 抓包协议分析(3)
1 USBTrace 抓 HID 鼠标数据包分析1.1 USB 请求1.2 描述符类型DEVICE_DESCRIPTOR 0x01CONFIGURATION_DESCRIPTOR 0x02STRING_DESCRIPTOR 0x03INTERFACE_DESCRIPTOR 0x04ENDPOINT_DESCRIPTOR 0x...原创 2020-01-03 12:47:12 · 3639 阅读 · 5 评论 -
利用串口和 USBlyzer 的 USB 抓包协议分析(2)
1 USB 抓包协议分析USB 数据是小端模式小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。1.1 USB 请求1. 获取设备描述符首先接收到主机发送的 USB 请求 0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00...原创 2020-01-03 10:58:05 · 4069 阅读 · 1 评论 -
利用串口和 USBlyzer 的 USB 抓包协议分析(1)
1 串口打印出的通信数据HID 鼠标类====== 测试 USB =======ID = 0x1012 === suspend_isr ====== reset_isr ====== endpoint0_out_isr ===Receive 8 byte data : 0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00 Trans SUC...原创 2020-01-02 15:20:06 · 1731 阅读 · 1 评论 -
STM32和PDIUSBD12学习(13)— 官方库移植
1 工程构建main.c, 添加 #include "hw_config.h"__IO uint8_t PrevXferComplete;int main(void){ Set_System(); USB_Interrupts_Config(); Set_USBClock(); USB_Init(); while (1) { if (bDeviceSta...原创 2019-12-25 22:01:06 · 552 阅读 · 0 评论 -
STM32和PDIUSBD12学习(12)— USB虚拟串口(2)
1 运行结果====== 测试 USB =======ID = 0x1012 === suspend_isr ====== reset_isr ====== endpoint0_out_isr ===Receive 8 byte data : 0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00 Trans SUCCESS!Setup Pack...原创 2019-12-25 12:57:59 · 517 阅读 · 0 评论 -
STM32和PDIUSBD12学习(11)— USB虚拟串口(1)
1 CDC 类请求SetLineCodingGetLineCodingSetControlLineState2 源码descriptor.h#ifndef __DESCRIPTOR_H#define __DESCRIPTOR_H#include "stm32f10x.h" #include "stm32_it.h"#include "delay....原创 2019-12-25 12:53:53 · 866 阅读 · 0 评论 -
STM32和PDIUSBD12学习(10)—HID键盘
1原创 2019-12-25 09:35:59 · 513 阅读 · 0 评论 -
STM32和PDIUSBD12学习(9)— USB鼠标按键模拟
1原创 2019-12-24 10:51:39 · 426 阅读 · 1 评论 -
STM32和PDIUSBD12学习(8)— USB鼠标 - HID与报告描述符
1 报告描述符Report Size 用来设定主项目(Input,Output,Feature)的报告字段大小,它的单位是位。Report Count 用来设定主项目之报告字段的数目,其等于操作的数目。Logical Minimum 和Logical Maximum 在说明每个报告字段的数值范围Usage Minimum 和Usage Maximum定义usage分配的起止Inpu...原创 2019-12-19 14:37:33 · 713 阅读 · 0 评论 -
STM32和PDIUSBD12学习(7)— USB鼠标 -设置配置描述符
1 设置配置描述符descriptor.h#ifndef __DESCRIPTOR_H#define __DESCRIPTOR_H#include "stm32f10x.h" #include "stm32_it.h"#include "delay.h"#include "sys.h"#include "usart.h"#include "led.h"#include...原创 2019-12-18 20:13:37 · 439 阅读 · 0 评论 -
STM32和PDIUSBD12学习(6)— USB鼠标-配置描述符
1 配置描述符descriptor.h#ifndef __DESCRIPTOR_H#define __DESCRIPTOR_H#include "stm32f10x.h" #include "stm32_it.h"#include "delay.h"#include "sys.h"#include "usart.h"#include "led.h"#include "key...原创 2019-12-18 19:02:31 · 444 阅读 · 0 评论 -
STM32和PDIUSBD12学习(5)— USB鼠标-设置地址
1 设置地址usb.cvoid handle_std_request(void){ printf("\r\n进入 handle_std_request 函数 \r\n"); switch(USB_request.bRequest) { case 0: printf("GET_STATUS \r\n"); break; case 1: pri...原创 2019-12-18 16:17:24 · 410 阅读 · 0 评论 -
STM32和PDIUSBD12学习(4)— USB鼠标-设备描述符
1 USB 描述符DEVICE_DESCRIPTOR 0x01CONFIGURATION_DESCRIPTOR 0x02STRING_DESCRIPTOR 0x03INTERFACE_DESCRIPTOR 0x04ENDPOINT_DESCRIPTOR 0x051.1 处理描述符请求handle_descriptor();usb.h...原创 2019-12-18 11:00:04 · 618 阅读 · 0 评论 -
STM32和PDIUSBD12学习(3)— USB鼠标
1 USB 请求usb.h#ifndef __USB_H#define __USB_H#include "stm32f10x.h" #include "stm32_it.h"#include "delay.h"#include "sys.h"#include "usart.h"#include "led.h"#include "key.h"#include...原创 2019-12-17 17:20:42 · 505 阅读 · 1 评论 -
STM32和PDIUSBD12学习(2)— USB鼠标
1 设置连接和断开写 2 字节的数据第一字节第二字节usb.h#ifndef __USB_H#define __USB_H#include "stm32f10x.h" #include "stm32_it.h"#include "delay.h"#include "sys.h"#include "usart.h"#include "led.h"...原创 2019-12-17 15:47:02 · 698 阅读 · 0 评论 -
STM32和PDIUSBD12学习(1)
1 新建项目1.1 ledled.h#ifndef __LED_H#define __LED_H#include "stm32f10x.h" #include "sys.h"#include "delay.h"#define LED0 PBout(8)#define LED1 PBout(9)#define LED2 PBOut(10)#define LED3 PBo...原创 2019-12-16 16:37:39 · 1017 阅读 · 0 评论