看了好几天的技术文档,我感觉快崩溃了,毕竟是第一次玩单片机,还好文档和一些例程足够有效,今天弄一个通过USB接口来在PC端打印简单的字母。效果如下图。
首先我们先配置一些选项。
其中我们需要更改
之后在src文件夹中的线程文件中添加如下代码:
#include "usb_thread0.h"
/*author yk */
/* USB Thread entry function */
extern ULONG num_lock_flag;
extern ULONG caps_lock_flag;
void usb_thread0_entry(void)
{
/* TODO: add your own code here */
UX_SLAVE_DEVICE* device;
UX_SLAVE_INTERFACE* interface;
UX_SLAVE_CLASS_HID* hid;
UX_SLAVE_CLASS_HID_EVENT hid_event;
UCHAR keyborad;
device=&_ux_system_slave->ux_system_slave_device;//获取设备
keyborad=0x04;
ux_utility_memory_set(&hid_event,0,sizeof(UX_SLAVE_CLASS_HID_EVENT));//
while (1)
{
while(device->ux_slave_device_state!=UX_DEVICE_CONFIGURED) //是否等于配置的端口
{
tx_thread_sleep (10);
}
while(device->ux_slave_device_state==UX_DEVICE_CONFIGURED)
{
interface = device->ux_slave_device_first_interface;
hid = interface->ux_slave_interface_class_instance;
tx_thread_sleep(200);
hid_event.ux_device_class_hid_event_length=8;//插入一个键
hid_event.ux_device_class_hid_event_buffer[0] = 0;
hid_event.ux_device_class_hid_event_buffer[1] = 0;
hid_event.ux_device_class_hid_event_buffer[2] = keyborad;
ux_device_class_hid_event_set(hid,&hid_event);//设置键盘事件
hid_event.ux_device_class_hid_event_buffer[2] = 0;
hid_event.ux_device_class_hid_event_length = 8;
ux_device_class_hid_event_set(hid, &hid_event);
if(keyborad!=(0x04+26))
{
keyborad++;
}
else
{
keyborad=0x04;
}
}
}
}
然后我们将有回调功能的hid函数文件进行添加。
我打算截图,如果你看到这里,并想要尝试这个程序,你或许会诅咒我,但是没办法,就是这么皮。
欢迎吐槽,累了好久调皮一下。