AT32 WorkBench常用功能12—USB Device Keyboard
本帖最后由 muyichuan2012 于 2024-8-15 17:25 编辑AT32WorkBench常用功能 12—USB Device Keyboard
AT32 WorkBench最新版下载地址:https://www.arterytek.com/file/download/1710
USB Keyboard工程建立
本文主要介绍如何基于AT32 WorkBench配置USB键盘
硬件环境
lAT-START-F405
lUSB线缆
软件环境
lAT32 Workbench
lMDK5
配置步骤:
1. 打开AT32 WorkBench新建AT32F405RCT7工程
2. 在外设中打开USB_OTGHS1并选择设备,视情况选择是否勾选相关信号,本案例不勾选
3. 可以看到时钟配置菜单栏打了红叉,这是因为缺少12M外部晶振为OTGHS PHY提供时钟,所以需要在外设CRM中打开高速外部晶振。
4. 在中间件USB_DEVICE中选择OTGHS1设备类为Keyboard,HS设备描述符和端点FIFO可根据需要修改,本案例使用默认数值。
5. 点击生成代码,然后生成MDK_V5工程即可完成Keyboard基础工程的建立
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 keyboard */
/*
after the the usb connected, user can use the'usb_hid_keyboard_send_char' function
to report keyboard events, for example, to report a char 'a' keyboardevent as follows:
if(usbd_connect_state_get(&otg_core_struct_hs.dev) ==USB_CONN_STATE_CONFIGURED)
{
usb_hid_keyboard_send_char(&otg_core_struct_hs.dev, 'a');
usb_delay_ms(10);
usb_hid_keyboard_send_char(&otg_core_struct_hs.dev, 0x00);
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_keyboard_send_char(&otg_core_struct_hs.dev, 'a');
usb_delay_ms(10);
usb_hid_keyboard_send_char(&otg_core_struct_hs.dev, 0x00);
usb_delay_ms(1000);
}
/* add user code end usb_app_task 2 */
}
7. 将光标置于可编辑处,然后将开发板HS_Device口连接到PC并复位,可以观察到键盘在不停的打出‘a’。
注意:对于USB_OTGFS来说,步骤相似,但可以不开启12M高速外部时钟,且输入到OTGFS控制器的时钟必须是48MHz。若选择hick to usbfs则可以解锁外设AAC功能,可以在AT32 WorkBench时钟配置界面进行确认。
页:
[1]