打印
[技术讨论]

电脑圈圈大神请进

[复制链接]
434|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我用APM32F107VC板子学习USB,库函数里有USB的例子,我改了一下,
大概照着你的USB键盘的描述符写的,可以识别设备了。可是发数据没反应。
发数据的代码:
void HidMouse_Proc1(void)
{
    uint8_t key = 0xff;
               
    uint8_t buffer[8] = {0, 0, 0, 0,0,0,0,0};
                uint8_t i=2;
               
               
    if(g_usbDev.devState != USBD_DEVICE_STATE_CONFIGURED)
    {
        return;
    }
                GPIO_ResetBit(GPIOE,GPIO_PIN_6);
    key = KeyPro();
    if(key != 0xff)
    {
                               
        if(s_statusEP)
        {
//            HidMouse_Write(key);
                                               
                                                switch (key)
                                                {
                                                                case 0:
                                                                                buffer[0]|=0X01;
                                                                               
                                                                break;

                                                                case 1:
                                                                                buffer[0]|=0X02;
                                                                break;

                                                                case 2:
                                                                                buffer[0]|=0X04;
                                                                break;

                                                                case 3:
                                                                                buffer[i]=0X59;
                                                                                i++;
                                                                break;
                                                                case 4:
                                                                                buffer[i]=0X5A;
                                                                                i++;
                                                                break;

                                                                case 5:
                                                                                buffer[i]=0X5B;
                                                                                i++;
                                                                break;
                                                                case 6:
                                                                                buffer[i]=0X39;
                                                                                i++;
                                                                break;

                                                                case 7:
                                                                                buffer[i]=0X53;
                                                                                GPIO_ResetBit(GPIOE,GPIO_PIN_5);
                                                                break;
                                                                default:
                                                                                return;
                                                }

                                               

                                                s_statusEP = 0;

                                                USBD_TxData(USB_EP_1, buffer, sizeof(buffer));
        }
    }
}
补充一下:我用的矩阵键盘。
后来安装了bus hound,和你的USB键盘比较,发现发的数据不一样。
你那个一行16个字节。很奇怪。
我看书上也是发8个字节呀!
于是我把
uint8_t buffer[8] = {0, 0, 0, 0,0,0,0,0};
改成
uint8_t buffer[16] = {0, 0, 0, 0,0,0,0,0};
这下惨了,不能识别了。


我改回来,还是不能识别。
好像有记忆功能。
请问圈圈大神,如何解决?谢谢!


使用特权

评论回复

相关帖子

沙发
大秦正声| | 2023-6-2 09:14 | 只看该作者
st 芯片103,107 的usb hid键盘,鼠标可以参考。建议先使用法国香水芯片板子。淘宝很多的。

使用特权

评论回复
板凳
icecut| | 2023-6-2 14:42 | 只看该作者
圈圈的教程是最早的, 后面有官方自动生成代码了. 就不建议自己写了

使用特权

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

本版积分规则

467

主题

3517

帖子

7

粉丝