原创 STM32 USB joystick程序 --hw_config.c

2008-4-26 18:42 5931 8 9 分类: MCU/ 嵌入式

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

文章评论1条评论)

登录后参与讨论

用户1079511 2008-5-8 08:32

这些讲的不错很好,最近也在看固件库,对于USB固件库的运行机制还是一头雾水!
相关推荐阅读
用户1359586 2011-07-07 11:49
一个简单字符驱动
网上常见的一个linux字符驱动,见 http://www.dzsc.com/data/html/2009-5-31/76528.html insmod test.ko lsmod      就可...
用户1359586 2010-05-14 22:38
FPGA自己产生reset
遇到一个FPGA没有外部的reset,只能自己产生了,这么简单一个问题居然想了很久才实现。在modelsim仿真是对的,还没有实际操作,也希望和大家讨论一下module reset_generatio...
用户1359586 2010-05-10 22:27
SRAM的时序约束
http://blog.ednchina.com/ilove314/198969/message.aspx#85821  读SRAM时序约束分析分析了SRAM的IO计算,但是没有讲如何具体的计算和Ti...
用户1359586 2010-04-07 21:09
CCS6000安装问题
http://bbs.21ic.com/icview-39374-1-1.html在安装CCS6000的时候,运行ccs6000.exe的时候,碰到好几机子都装不上。主要问题是在安装到“compone...
用户1359586 2010-01-13 21:15
matlab 函数:sprintf
for i="1:20"     j="sprintf"('%03d',i)endj =001j =002j =003j =004j =005j =006j =007j =008j =009j =01...
用户1359586 2009-09-29 09:54
有着十三亿人众的孔孟之乡没有一个教育家
   耶鲁大学校长 小贝诺.施密德特  曾任耶鲁大学校长的小贝诺?施密德特,日前在耶鲁大学学报上公开撰文批判中国大学,引起了美国教育界人士对中国大学的激烈争论。 对中国大学近年来久盛不衰的“做大做强”...
我要评论
1
8
关闭 站长推荐上一条 /2 下一条