日志档案

发表于 2008-4-26 18:42:47

0

标签: STM32  USB  Joystick  程序设计  

STM32 USB joystick程序 --hw_config.c

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);
}

系统分类: ARM   |   用户分类: STM32 ARM Cortex   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(365)    回复(1)  

投一票您将和博主都有获奖机会!

最新评论

  • wormchen

    2008-5-8 8:32:38

    这些讲的不错很好,最近也在看固件库,对于USB固件库的运行机制还是一头雾水!