中级会员
 
- 积分
- 407
- 金钱
- 407
- 注册时间
- 2013-1-14
- 在线时间
- 77 小时
|
5金钱
最近在写USB HID的触摸屏驱动,其实也就是把鼠标的相对坐标值改成绝对坐标值,需要在端点1发送5个字节的数据。
但是问题来了,我用BUS HOUND始终只能监听到4个数据,最后一个字节始终收不到,请问大家是什么原因。
例如,发送使用这个函数
void TouchPanel_Send(void)
{
u8 Mouse_Buffer[5] = {0, 0, 0, 0, 0};
/* prepare buffer to send */
Mouse_Buffer[0]=0x11;
Mouse_Buffer[1]=0x22;
Mouse_Buffer[2]=0x33;
Mouse_Buffer[3]=0x44;
Mouse_Buffer[4]=0x55;
/*copy mouse position info in ENDP1 Tx Packet Memory Area*/
UserToPMABufferCopy(Mouse_Buffer, GetEPTxAddr(ENDP1), 5);
/* enable endpoint for transmission */
SetEPTxValid(ENDP1);
}
在BUS HOUND上只能收到 0X11 0X22 0X33 0X44
|
最佳答案
查看完整内容[请看2#楼]
回复【2楼】正点原子:
---------------------------------
可以的,这个发送数据多少和形式是根据报告描述符来的,可以自行更改的。
原子兄,经过不懈的努力,我找出原因了,原来是void Joystick_Reset(void) 这个函数中的 SetEPTxCount(ENDP1, 4)也要改成相应的大小,
这里我改成了SetEPTxCount(ENDP1, 5)。这个小错误导致我今天忙活了一天。呵呵,但是仍然多谢原子兄的帮助。
|