瑞萨sk-s7g2之旅(2)

看了好几天的技术文档,我感觉快崩溃了,毕竟是第一次玩单片机,还好文档和一些例程足够有效,今天弄一个通过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函数文件进行添加。

我打算截图,如果你看到这里,并想要尝试这个程序,你或许会诅咒我,但是没办法,就是这么皮。



欢迎吐槽,累了好久调皮一下。

发布了29 篇原创文章 · 获赞 24 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/yyk219/article/details/80456737