OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5823|回复: 7

USB实验:ReportDescriptor

[复制链接]

54

主题

537

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2012-2-27
在线时间
7 小时
发表于 2013-5-21 13:45:13 | 显示全部楼层 |阅读模式
看到鼠标,键盘,HID里面都有这个描述,很多文章都是直接给出没有说这个如何来的。
有没有哪位大侠对这个有过了解啊?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-21 14:01:53 | 显示全部楼层
看USB 2.0的白皮书吧...
或者看看电脑圈圈的资料。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
发表于 2013-5-21 16:02:20 | 显示全部楼层
回复【楼主位】wwjdwy:
---------------------------------
HID报告描述符一般都直接用。。。。
你也可以去看看报告描述符详解之类的....我没看过..
回复 支持 反对

使用道具 举报

15

主题

53

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2013-4-19
在线时间
0 小时
发表于 2013-5-21 16:22:28 | 显示全部楼层

回報 開源網站:

感謝:
來自 精華帖 USB 頃情奉獻( 注釋版)  USB学习.rar   (yaocp86)  提供

小修改成 :STM32 USB HID PC 雙向通訊 (戰鑑 庫函數板本)
可發送資料,也可接收資料,  一次傳送 64 字節, 可多次傳送 
LCD 螢幕 顯示收發字串資料
收發長度 41 , 自動偵測不必設定 (Hex 41=  64 字節+1起始碼 設)
修改 原始程式不能傳送 0X00
及16 進制顯示接收內容

STM32 社區有視频, 非常詳細
STM32F10x_USB_学习培训资料. 
http://www.stmcu.org/video/view_1483.html

022525_STM32F10x_USB_学习培训资料.pdf

3.44 MB, 下载次数: 183

USB+HID+Demonstrator+Release+1.0.1(上位机和文档).rar

4.71 MB, 下载次数: 154

ALIENTEK USB PC MMI V1.0.rar

3.81 MB, 下载次数: 145

戰艦 2.8 吋螢幕 如換成 3.5 吋螢幕 請教問題1: 戰鑑库函数版本3.5吋觸控螢幕無法設成橫式顯示
回复 支持 反对

使用道具 举报

54

主题

537

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2012-2-27
在线时间
7 小时
 楼主| 发表于 2013-5-21 23:39:37 | 显示全部楼层
回复【4楼】hmhuang98:
---------------------------------
谢谢啊哥们

void EP2_IN_Callback(void)
{
     u8 ii;
     for (ii=0;ii<22;ii++) Transi_Buffer[ii] = 0x00;
     //for LED test
     if (GPIOA->ODR & 0x0c )  GPIOA->ODR &= (~0x0c);
     else GPIOA->ODR |= 0x0c;
}
这个函数做什么用的?发送之后清楚发送buffer? GPIOA呢?
回复 支持 反对

使用道具 举报

15

主题

53

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2013-4-19
在线时间
0 小时
发表于 2013-5-22 14:09:51 | 显示全部楼层

 for (ii=0;ii<nReportCnt;ii++) Transi_Buffer[ii] = 0x00;

PC 端接收完成產生中斷事件, 清出除舊資料

//////////////////////////////////////////////////////////////////
    //for LED test
     if (GPIOA->ODR & 0x0c )  GPIOA->ODR &= (~0x0c);
     else GPIOA->ODR |= 0x0c;
 可能是發送完成 led 反向 亮一下,但我沒去試, 應可有可無 //for LED test  



             ALIENTEK USB PC Ver2.rar  是
收發22 字節 
更新的 ALIENTEK USB PC Ver3.rar才是收發 64  字節

void EP1_OUT_Callback(void)
{
     USB_ReceiveFlg = TRUE;
     MAToUserBufferCopy(Receive_Buffer, ENDP1_RXADDR,nReportCnt);  //nReportCnt 設定收發字節長度
     MsgCmd = Receive_Buffer[21]; //未知用途
     SetEPRxStatus(ENDP1, EP_RX_VALID);
}

void EP2_IN_Callback(void)
{
     u8 ii;
     for (ii=0;ii<nReportCnt;ii++) Transi_Buffer[ii] = 0x00;   //nReportCnt 設定收發字節長度
     //for LED test
     if (GPIOA->ODR & 0x0c )  GPIOA->ODR &= (~0x0c);
     else GPIOA->ODR |= 0x0c;
}

(學習 STM32 至今天, 還不到三個月)




























戰艦 2.8 吋螢幕 如換成 3.5 吋螢幕 請教問題1: 戰鑑库函数版本3.5吋觸控螢幕無法設成橫式顯示
回复 支持 反对

使用道具 举报

54

主题

537

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2012-2-27
在线时间
7 小时
 楼主| 发表于 2013-5-22 15:29:38 | 显示全部楼层
回复【6楼】hmhuang98:
---------------------------------
好吧,佩服,三个月就这么厉害
回复 支持 反对

使用道具 举报

54

主题

537

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2012-2-27
在线时间
7 小时
 楼主| 发表于 2013-5-24 22:26:22 | 显示全部楼层
回复【6楼】hmhuang98:
---------------------------------
试了一下我这不成功。
用了你的CustomHID_ReportDescriptor 不行,HID器件都没识别。
我在desc文件中改了endpoint 的bEndpointAddress,wMaxPacketSize
在prop 的CustomHID_Reset中也修改了相应的endpoint,还是不行。
除了这三个地方,还有什么需要修改的么?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-19 08:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表