打印
[AT32 WorkBench]

AT32 WorkBench常用功能11--USB_Device_Mouse

[复制链接]
1089|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 muyichuan2012 于 2024-8-15 17:26 编辑

AT32WorkBench常用功能  11
—USB Device Mouse

AT32 WorkBench最新版下载地址:https://www.arterytek.com/file/download/1710

USB Mouse工程建立
本文主要介绍如何基于AT32 WorkBench配置USB鼠标
硬件环境
l  AT-START-F405
l  USB线缆

软件环境
l  AT32 Workbench
l  MDK5

配置步骤:
1.    打开AT32 WorkBench新建AT32F405RCT7工程

2.    在外设中打开USB_OTGHS1并选择设备,视情况选择是否勾选相关信号,本案例不勾选

3.    可以看到时钟配置菜单栏打了红叉  ,这是因为缺少12M外部晶振为OTGHS PHY提供时钟,所以需要在外设CRM中打开高速外部晶振。

4.    在中间件USB_DEVICE中选择OTGHS1设备类为Mouse,HS设备描述符和端点FIFO可根据需要修改,本案例使用默认数值。

5.    点击生成代码,然后生成MDK_V5工程即可完成Mouse基础工程的建立

6.    使用MDK_V5打开项目,对wk_usb_app_task()函数做如下修改,编译并下载到开发板
  void wk_usb_app_task(void)
  {
     /* add user code begin usb_app_task 0 */
  
     /* add user code end usb_app_task 0 */
  
     /* add user code begin usb_app_task 1 */
  
     /* add user code end usb_app_task 1 */
  
     /* hs device mouse */
     /*
     after the the usb connected, user can use the 'usb_hid_mouse_send'  function
     to report mouse events, for example, to report a 'right button' mouse  event as follows:
  
     if(usbd_connect_state_get(&otg_core_struct_hs.dev) ==  USB_CONN_STATE_CONFIGURED)
    {
       usb_hid_mouse_send(&otg_core_struct_hs.dev, RIGHT_BUTTON);
       usb_delay_ms(10);
       usb_hid_mouse_send(&otg_core_struct_hs.dev, BUTTON_RELEASE);
       usb_delay_ms(1000);
    }
     */
  
     /* add user code begin usb_app_task 2 */
         if(usbd_connect_state_get(&otg_core_struct_hs.dev)  == USB_CONN_STATE_CONFIGURED)
    {
       usb_hid_mouse_send(&otg_core_struct_hs.dev, RIGHT_BUTTON);
      usb_delay_ms(10);
       usb_hid_mouse_send(&otg_core_struct_hs.dev, BUTTON_RELEASE);
      usb_delay_ms(1000);
    }
     /* add user code end usb_app_task 2 */
  }
  

7.    将鼠标箭头移动到桌面空白处,然后将开发板HS_Device口连接到PC并复位,可以观察到鼠标在不停的做右击的动作


注意:对于USB_OTGFS来说,步骤相似,但可以不开启12M高速外部时钟,且输入到OTGFS控制器的时钟必须是48MHz。若选择hick to usbfs则可以解锁外设AAC功能,可以在AT32 WorkBench时钟配置界面进行确认。



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

198

主题

1896

帖子

28

粉丝