hw_config.c 提供了STM32的初始化函数和实际硬件需要的操作函数,Joystick_Send()通过函数UserToPMABufferCopy 和 SetEPTxValid 将坐标值发给了USB端口。这个文件算是USB代码中最易懂的一个了。
void Joystick_Send(u8 Keys)
{
u8 Mouse_Buffer[4] = {0, 0, 0, 0}; //前后固定为0,中间2位代表X,Y
s8 X = 0, Y = 0;
switch (Keys)
{
case LEFT:
X -= CURSOR_STEP;
break;
case RIGHT:
X += CURSOR_STEP;
break;
case UP:
Y -= CURSOR_STEP;
break;
case DOWN:
Y += CURSOR_STEP;
break;
default:
return;
}
/* prepare buffer to send */
Mouse_Buffer[1] = X;
Mouse_Buffer[2] = Y;
/*copy mouse position info in ENDP1 Tx Packet Memory Area*/
UserToPMABufferCopy(Mouse_Buffer, GetEPTxAddr(ENDP1), 4); //把设备的数据发往主机
/* enable endpoint for transmission */
SetEPTxValid(ENDP1);
}
用户1079511 2008-5-8 08:32