打印

STM32 USB HID问题 请高手指点

[复制链接]
1931|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lanke2009|  楼主 | 2013-8-4 14:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在使用UserToPMABufferCopy(Buffer, GetEPTxAddr(ENDP1), 8);总是不停的连续发送同样的数据,不能发送完成。程序如下:
void Joystick_Send(uint8_t Keys)
{
        uint8_t Buffer[8] = {0, 0, 0, 0, 0, 0, 0, 0};
        int8_t i = 2;
        Buffer[i]=0x04; //Keyboard Return (ENTER)
        i++;
        Buffer[i]=0x05; //Keyboard Return (ENTER)
        i++;
        /* prepare buffer to send */
       
        while (SendOverFlag != 1); //等待上一次发送完
        SendOverFlag = 0;
        //while(EP_TX_NAK !=GetEPTxStatus(ENDP1))
        UserToPMABufferCopy(Buffer, GetEPTxAddr(ENDP1), 8);  
        SetEPTxCount(ENDP1, 8);
       
        /* enable endpoint for transmission */
        SetEPTxValid(ENDP1);  
}

在记事本中接收连续的“ab”,不会停止
如:ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababa
求高手指点!!
沙发
hkcj| | 2013-8-4 19:02 | 只看该作者
不是很了解   楼主   帮你顶一个   看看别人的意见   

使用特权

评论回复
板凳
hkcj| | 2013-8-4 19:02 | 只看该作者
感觉应该是标志位没有清除   

使用特权

评论回复
地板
zeluo| | 2013-8-4 19:22 | 只看该作者
不是很了解   楼主   帮你顶一个   看看别人的意见   

使用特权

评论回复
5
zeluo| | 2013-8-4 19:23 | 只看该作者
应该有高手能够帮你解决   

使用特权

评论回复
6
fane| | 2013-8-4 22:41 | 只看该作者
没有发送按键松开指令
  memset(Buffer,0,8);
    USB_SIL_Write(ENDP1,Buffer,8);
    SetEPTxValid(ENDP1);
  

使用特权

评论回复
7
lanke2009|  楼主 | 2013-8-5 17:55 | 只看该作者
fane 发表于 2013-8-4 22:41
没有发送按键松开指令
  memset(Buffer,0,8);
    USB_SIL_Write(ENDP1,Buffer,8);

不是很明白,我应该在什么时候调用这个函数?

使用特权

评论回复
8
cjhk| | 2013-8-5 18:57 | 只看该作者
我不是很懂   楼主  帮你顶一个  一定不能下沉啊

使用特权

评论回复
9
fane| | 2013-8-9 10:09 | 只看该作者
在你调用void Joystick_Send(uint8_t Keys)完成后,然后再调用一次,不过这时要发送的是8个0

使用特权

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

本版积分规则

1

主题

3

帖子

1

粉丝