3057|1

2002

帖子

24

TA的资源

五彩晶圆(高级)

楼主
 

TIVA C launchpad试用心得2.-usb HID键盘设备 [复制链接]

功能,插上侧面usb口,自动识别驱动后。打开记事本,按下SW1按键,即会向记事本输出一行文字。
用的TI USB库,主要是端口初始化和枚举描述符

源代码下载
2.0_usb_dev_KB.rar (136.21 KB, 下载次数: 21)
  1. //*****************************************************************************
  2. //
  3. // The HID keyboard device initialization and customization structures.
  4. //
  5. //*****************************************************************************
  6. tHIDKeyboardInstance g_KeyboardInstance;

  7. const tUSBDHIDKeyboardDevice g_sKeyboardDevice =
  8. {
  9.     USB_VID_STELLARIS,
  10.     USB_PID_KEYBOARD,
  11.     500,
  12.     USB_CONF_ATTR_SELF_PWR | USB_CONF_ATTR_RWAKE,
  13.     KeyboardHandler,
  14.     (void *)&g_sKeyboardDevice,
  15.     g_pStringDescriptors,
  16.     NUM_STRING_DESCRIPTORS,
  17.     &g_KeyboardInstance
  18. };
复制代码
  1. // Set the USB stack mode to Device mode with VBUS monitoring.
  2.     //
  3.     USBStackModeSet(0, USB_MODE_FORCE_DEVICE, 0);

  4.     // Pass our device information to the USB HID device class driver,
  5.     // initialize the USB
  6.     // controller and connect the device to the bus.
  7.     //
  8.     USBDHIDKeyboardInit(0, &g_sKeyboardDevice);

  9.     //
  10.     // Wait for initial configuration to complete.
  11.     //
  12.     UARTprintf("Waiting for host...\n");


  13.     //
  14.     // Main application loop.
  15.     //
  16.                
  17.     while(1)
  18.     {
  19.        // unsigned char ucButtons;
  20.        // unsigned char ucButtonsChanged;
  21.         //
  22.         // Tell the user what we are doing and provide some basic instructions.
  23.         //
  24.                                 UARTprintf("Waiting for host...\n");

  25.         //
  26.         // Wait here until USB device is connected to a host.
  27.         //
  28.         while(!g_bConnected)
  29.         {
  30.         }

  31.         //
  32.         // Update the status.
  33.         //
  34.                                 UARTprintf("Host connected...\n");

  35.         //
  36.         // Enter the idle state.
  37.         //
  38.         g_eKeyboardState = STATE_IDLE;

  39.         //
  40.         // Assume that the bus is not currently suspended if we have just been
  41.         // configured.
  42.         //
  43.         bLastSuspend = false;

  44.         //
  45.         // Keep transferring characters from the UART to the USB host for as
  46.         // long as we are connected to the host.
  47.         //
  48.         while(g_bConnected)
  49.         {
  50.             //
  51.             // Remember the current time.
  52.             //
  53.             ulLastTickCount = g_ulSysTickCount;

  54.             //
  55.             // Has the suspend state changed since last time we checked?
  56.             //
  57.             if(bLastSuspend != g_bSuspended)
  58.             {
  59.                 //
  60.                 // Yes - the state changed so update the display.
  61.                 //
  62.                 bLastSuspend = g_bSuspended;
  63.                 if(bLastSuspend)
  64.                 {
  65.                                                                                 UARTprintf("Bus suspended...\n");
  66.                                                                                 // Turn on the Green LED.
  67.                                                                                 //
  68.                                                                                 GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, GPIO_PIN_3);
  69.                                                                                 // Turn off the Green LED.
  70.                                                                                 //
  71.                                                                                 GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, 0);               
  72.                 }
  73.                 else
  74.                 {
  75.                                                                                 UARTprintf("Host connected...\n");
  76.                                                                                 // Turn on the Green LED.
  77.                                                                                 //
  78.                                                                                 GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, GPIO_PIN_3);
  79.                                                                                 // Turn off the Green LED.
  80.                                                                                 //
  81.                                                                                 GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, 0);                                                                       
  82.                 }
  83.             }

  84.             //
  85.             // See if the button was just pressed.
  86.             //
  87.                                                 if(!GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4))
  88.             {
  89.                 //
  90.                 // If the bus is suspended then resume it.  Otherwise, type
  91.                 // some "random" characters.
  92.                 //
  93.                 if(g_bSuspended)
  94.                 {
  95.                     USBDHIDKeyboardRemoteWakeupRequest(
  96.                                                    (void *)&g_sKeyboardDevice);
  97.                 }
  98.                 else
  99.                 {
  100.                     //SendString("Make the Switch to TI Microcontrollers!");
  101.                 }
  102.                                                                 SendString(KeyChar);
  103.             }
  104.             //
  105.             // Wait for at least 1 system tick to have gone by before we poll
  106.             // the buttons again.
  107.             //
  108.             while(g_ulSysTickCount == ulLastTickCount)
  109.             {
  110.             }
  111.         }
  112.     }
  113. }
复制代码

最新回复

正在为这个USB犯愁  详情 回复 发表于 2013-11-24 13:13
 
点赞 关注

回复
举报

695

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
正在为这个USB犯愁
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表