tndnkasz 发表于 4 天前

USB键盘的程序,简单的 | 已解决

usb键盘的程序,可以帮我写一个键盘发送程序吗,在主程序做一个简单的延时,发送特定的内容到USB,可以在记事本直接显示的,我参考66-通过USB HID协议打印数据信息-可用于调试,71-STC_USB_鼠标键盘复合例程,62-基于HID协议的USB键盘范例,都改失败了,其中71的时候电脑HID调试能收到信息,电脑显示不是HID键盘,62的时候电脑显示是HID键盘,但是收不到信息,你可以帮我写一下这两个吗,fasongjianpan1和fasongjianpan2,万分感谢!主程序我准备这样写,单片机准备用STC8H2K12U的SOP8的,最后可能放一个按钮,或者不放按钮,




void main()
{u32 a32;
u8 a8;
u16 a16,a17;
xdata u8 fasong;
    sys_init();
    usb_init();


    EA = 1;
   
    while (1)
    {
a32++;if(a32>333333){a32=0;a17=300;
fasongjianpan1("http://www.absde.com:33333/abs?abc=");
for(a16=0;a16<a17;a16++){fasongjianpan2(fasong);}
}
      

    }
}

ercircle 发表于 4 天前

按单字符连续发就行:







tndnkasz 发表于 4 天前

GOOD!!!!!我先试一下!谢谢谢谢!!!!!

tndnkasz 发表于 4 天前

*** Error: Project 'usb_keyboard' requires 'C251' Toolchain which is not installed.
直接打开你的压缩文件,是这个错误提示,
这个没有关系的,我找过了,就是下载那个东西运行一下,然后我这个电脑运行过了,没解决,拿也就是32G的一些例程不能用,我准备过段时间整理一下电脑,重装一下就好了,现在8H的编译都没有问题的,你说的,按单字符连续发就行:我也是这样思路的,然后我用试验箱程序的62,结果发送不了,我写了一个定时发送的,模拟按键,可能哪里被我弄错了,
你要不就帮我写一个这样的把,主程序里放一个u32 a32;
a32++;if(a32>33333){a32=0;a17=300;fasong("a");}帮我这个实现一下可以吗,其他循环我自己写,不要用C251的编译的,用C51编译的,因为我电脑升级C251那个程序运行了提示成功实际还有问题,不想再那个上面研究太多时间,现在忙,

ercircle 发表于 4 天前

tndnkasz 发表于 2025-6-12 18:02
*** Error: Project 'usb_keyboard' requires 'C251' Toolchain which is not installed.
直接打开你的压缩 ...

上面已经写好了,将对应的函数复制过去就行

ercircle 发表于 4 天前

按照此贴一把搞定环境问题:
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=16290&highlight=%E8%90%8C%E6%96%B0%E6%8C%87%E5%8D%97&page=1&extra=#pid152740

tndnkasz 发表于 4 天前

还有一个小问题就是,我用原来的44例程烧录再STC8H8K64U芯片里,插电脑上的时候,设备管理器是有显示一个键盘设备的,然后刚刚你不是发给我一个新的44号程序吗,我编译是251不能编译,但是按照你编译给我的HXE文件下载到STC8H8K64U芯片里,插电脑上,没有显示新的HID键盘。

ercircle 发表于 4 天前

tndnkasz 发表于 2025-6-12 18:16
还有一个小问题就是,我用原来的44例程烧录再STC8H8K64U芯片里,插电脑上的时候,设备管理器是有显示一个键 ...

例程是Ai8051U实验箱32bit的,不能用于8H系列。函数拷贝下用8H工程编译烧录即可

tndnkasz 发表于 4 天前

是的我是按照那个下载了,然后提示文件更新了,但是重新打开软件错误提示还在!那个问题不大,我自己能解决的!要点时间整理一下电脑资料,重装软件就可以,现在先把定时发字符到电脑上的弄一下!我改了62号例程,直接定时模拟按键给直接数4,不行,电脑是有显示HID键盘,我设定发送的时候指示灯闪烁也有闪,就是电脑打开记事本没有收到任何内容!

tndnkasz 发表于 4 天前

可以帮我就是在STC8H8K64U试验箱的62-基于HID协议的USB键盘范例里:

void main()
{u32 a32;
//10¸ß×裬01ÍÆÍ죬11¿ªÂ©

       
                P0M1 = 0X00;        P0M0 = 0X00;        //ÉèÖÃΪ׼˫Ïò¿Ú           00001101;00000011   yitiban,220,
        P1M1 = 0X00;        P1M0 = 0X00;        //ÉèÖÃΪ׼˫Ïò¿Ú 1000 1000;0111 0010
        P2M1 = 0X00;        P2M0 = 0X00;        //ÉèÖÃΪ׼˫Ïò¿Ú0000 0000;00000000
        P3M1 = 0X00;        P3M0 = 0X00;        //ÉèÖÃΪ׼˫Ïò¿Ú 1100 0000;1011 0000//        P3M1 = 0X00;        P3M0 = 0X10;P3M0 = 0X18;
        P4M1 = 0X00;        P4M0 = 0X00;        //ÉèÖÃΪ׼˫Ïò¿Ú
        P5M1 = 0X00;        P5M0 = 0X00;        //ÉèÖÃΪ׼˫Ïò¿Ú0000 0000;0000 0000
        P6M1 = 0;        P6M0 = 0;        //ÉèÖÃΪ׼˫Ïò¿Ú
        P7M1 = 0;        P7M0 = 0;        //ÉèÖÃΪ׼˫Ïò¿Ú
        P_SW2 |= 0x80;//À©Õ¹¼Ä´æÆ÷(XFR)·ÃÎÊʹÄÜ

    usb_init();
    timer_init();

    EA = 1;
   
    while (1)
    {a32++;if(a32>111111){ a32=0;P37=!P37;   }
      usb_class_in();
      
      if (f1ms)
      {
            f1ms = 0;
            scan_key();
      }
    }
}
这段程序,我把其他去掉,就放一个u32 a32;
a32++;if(a32>33333){a32=0;a17=300;fasong("a");}帮我这个实现一下可以吗,因为这个程序改起来是最简单的,这个插到电脑上已经成功显示HID键盘了,因为我改模拟按键改错了,发送不了信息,你帮我改一下定时发送abc123这样的单个字符发的程序给我可以吗,可不可以不要把32的整进来先,我买了32芯片的,那个32的后面有客户需要的时候再研究,现在这个usb键盘着急有单子了,你帮我在STC8H8K64U试验箱的62-基于HID协议的USB键盘范例的基础上加一个a32++;if(a32>33333){a32=0;a17=300;fasong("a");}这样的定时发单字符的程序可以吗
页: [1] 2
查看完整版本: USB键盘的程序,简单的 | 已解决