打印

用bushound调试USB

[复制链接]
8072|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 yangmiao0223 于 2013-9-8 16:29 编辑

各位大神 求看一下 使用bushound查看usb连接的部分信息。前面描述符没问题,枚举应该是成功了,没问题。

但是USB发送的252个字节怎么全都是这个0x25 0xd9?应该是很多不一样的数才对。

求解答,是usb硬件的原因么,还是软件没写好,我是小白,不做usb这块,但是这块出问题了必须我来处理?具体要往哪个方向排错?

相关帖子

沙发
yangmiao0223|  楼主 | 2013-9-8 10:35 | 只看该作者
另外 那个 USTS  canceled  是怎么回事    好像正常连接的时候没有这个。、。。。。。

使用特权

评论回复
板凳
yangmiao0223|  楼主 | 2013-9-8 16:22 | 只看该作者
@computer00 版主求解答, 另外,会不会是我硬件没有连好的原因呢???

使用特权

评论回复
地板
yangmiao0223|  楼主 | 2013-9-9 10:24 | 只看该作者
怎么都没一个人回答啊? 各位 行行好啊   好人有好报

使用特权

评论回复
5
yangmiao0223|  楼主 | 2013-9-10 10:24 | 只看该作者
群里很冷清么?

使用特权

评论回复
6
yezhenqin| | 2013-9-10 11:02 | 只看该作者
先从新设置一下你的BUSHOUND,打开setting

max record length设置大些 比如512

基本确定是你软件有问题,你看看软件对类请求的处理是否有误。

使用特权

评论回复
7
yangmiao0223|  楼主 | 2013-9-10 15:15 | 只看该作者
yezhenqin 发表于 2013-9-10 11:02
先从新设置一下你的BUSHOUND,打开setting

max record length设置大些 比如512

软件有问题是说 我的固件程序有问题 而不是上位机软件有问题吧。
已经按照你的做了,还是有问题,和以前写好的上位机软件连不通。而且hushound也是一楼类似的显示
对类的请求处理  是哪段函数?  麻烦帮我看下好么   我不懂这些,拜托了
//Cy68001自定义请求的处理子程序,应该实现clear feature 和 set feature标准请求
//自定义一个请求通知枚举的类型-高速或全速,不支持低速
void cy_setup(void)
{
//        Uint16 i;
if(!sx2EnumOK)
    return;
/*关于setup中断的处理*/
if(sx2Setup)        //xiejin Setup中断标志,在中断服务程序中置位
        {
    /*清SETUP数据读的标志*/
    sx2Setup = FALSE;

    /*解析OUT类型的命令申请*/
    if(setupBuff[0] == VR_TYPE_OUT)
                {
        /*分析命令类型*/
        switch(setupBuff[1])
                        {
            //暂时不支持OUT类型请求

            default:
                /*不支持的请求*/
                /*写非零数到SX2_SETUP,取消此请求*/
                Write_SX2reg(SX2_SETUP, 0xff);
                break;
                        }/*分析命令类型*/
                }
        else            /*解析IN类型的命令申请*/
                {
        if(setupBuff[0] == VR_TYPE_IN)
                        {
            /*分析命令类型*/
            switch(setupBuff[1])
                                {
                /*USB工作的标准*/
                case VR_USB_VERION:
                    if(hshostlink ==TRUE)
                        {
                        DataToEndpoint0 = 0x55;
                        }
                    else
                        {
                        DataToEndpoint0 = 0xaa;
                        }
                    Write_SX2reg(SX2_EP0BUF, DataToEndpoint0);
                    /*写入要传回的数据的长度*/
                    Write_SX2reg(SX2_EP0BC, 1);
                    break;

                default:
                    /* unsupported request */
                    /* write any non-zero value to the setup register
                    to stall the request. */
                    Write_SX2reg(SX2_SETUP, 0xff);
                break;
                                }
                        }
        else
                        {
            /*不支持的请求,写非零数到SX2_SETUP,取消此请求*/
            Write_SX2reg(SX2_SETUP, 0xff);
            }
                }/*解析IN类型的命令申请*/
        }/*关于setup中断的处理*/
}


不知道是不是我找的这一段  如果不是 我再找找      好人。。。。。拜托了 谢谢

使用特权

评论回复
8
yezhenqin| | 2013-9-11 15:52 | 只看该作者
按你的代码看,VR_TYPE_OUT = 0X40 VR_TYPE_IN = 0XC0。
VR_USB_VERION你是否定义为0xB1 ?如果是,上位机的 发的reqtype是0xc0,req是0xb8,你判断req != VR_USB_VERION 后发了stall( /* write any non-zero value to the setup register to stall the request. */)。你试看看屏蔽 case VR_USB_VERION:

使用特权

评论回复
9
yezhenqin| | 2013-9-11 15:52 | 只看该作者
yangmiao0223 发表于 2013-9-10 15:15
软件有问题是说 我的固件程序有问题 而不是上位机软件有问题吧。
已经按照你的做了,还是有问题,和以前 ...


按你的代码看,VR_TYPE_OUT = 0X40 VR_TYPE_IN = 0XC0。
VR_USB_VERION你是否定义为0xB1 ?如果是,上位机的 发的reqtype是0xc0,req是0xb8,你判断req != VR_USB_VERION 后发了stall( /* write any non-zero value to the setup register to stall the request. */)。你试看看屏蔽 case VR_USB_VERION:

使用特权

评论回复
10
yangmiao0223|  楼主 | 2013-9-11 16:05 | 只看该作者
yezhenqin 发表于 2013-9-11 15:52
按你的代码看,VR_TYPE_OUT = 0X40 VR_TYPE_IN = 0XC0。
VR_USB_VERION你是否定义为0xB1 ?如果是,上位 ...

我的VR_USB_VERION定义是0xB8  屏蔽了那条语句 还是不行
能不能加你qq  方便请教?

使用特权

评论回复
11
yangmiao0223|  楼主 | 2013-9-11 16:07 | 只看该作者
yezhenqin 发表于 2013-9-11 15:52
按你的代码看,VR_TYPE_OUT = 0X40 VR_TYPE_IN = 0XC0。
VR_USB_VERION你是否定义为0xB1 ?如果是,上位 ...

我qq  464552741

使用特权

评论回复
12
yangmiao0223|  楼主 | 2013-9-12 10:19 | 只看该作者
各位大神 解答下啊
使用cy7c68001  while循环通过语句:   SX2_FifoWriteSingle(ENDPOINT6, 0xaa);想要一直发送数据0xaa给上位机  
但是用bushound抓包 捕捉到的  就是一楼所显示的 那个25  d9
发送的数据不对啊

使用特权

评论回复
13
yezhenqin| | 2013-9-12 14:54 | 只看该作者
543201274

使用特权

评论回复
14
beyond696| | 2013-9-12 16:32 | 只看该作者
yangmiao0223 发表于 2013-9-12 10:19
各位大神 解答下啊
使用cy7c68001  while循环通过语句:   SX2_FifoWriteSingle(ENDPOINT6, 0xaa);想要一直 ...

你上位机没程序读数据你是发送不成功的

使用特权

评论回复
15
yangmiao0223|  楼主 | 2013-9-13 10:57 | 只看该作者
beyond696 发表于 2013-9-12 16:32
你上位机没程序读数据你是发送不成功的

上位机程序是 以前别人写好的    而且以前的板子能用。现在我升级了下板子 固件程序没动  但是连不上。。。。

使用特权

评论回复
16
yangmiao0223|  楼主 | 2013-9-13 10:59 | 只看该作者
yangmiao0223 发表于 2013-9-13 10:57
上位机程序是 以前别人写好的    而且以前的板子能用。现在我升级了下板子 固件程序没动  但是连不上。。 ...

如果上位机没读数据    bushound捕捉到的下位机发送的数据 就是乱码么?

使用特权

评论回复
17
beyond696| | 2013-9-13 18:26 | 只看该作者
上位机没读数据,单片机端是不可能成功发送数据的

使用特权

评论回复
18
computer00| | 2013-9-28 19:17 | 只看该作者
是因为你把表头的data拖得太窄的原因吧?

使用特权

评论回复
19
martin0221| | 2013-10-7 08:55 | 只看该作者
顶一个,学习了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

83

帖子

0

粉丝