打印
[STM32L4]

STM32L4R5板子模拟带鼠标功能的USB键盘(方法二)

[复制链接]
118|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 比神乐 于 2023-6-18 22:04 编辑

我参考网上的STM32例程和电脑圈圈的书,想实现带鼠标功能的USB键盘(方法二)。
现在模拟的鼠标和键盘都出来了。

可是按键不反应。
我的按键代码如下:
if(HAL_GPIO_ReadPin(GPIOC,KEY_Pin)==1)    //键盘
                {
                       
                                sendbuffer[0]=1;
                                if((KeyPress&1)==0)
                                {
                                        HAL_GPIO_WritePin(LD1_GPIO_Port, LD1_Pin, GPIO_PIN_SET);

                                        sendbuffer[3]=0x04;
                                }
                                if((KeyPress&2)==0)
                                        sendbuffer[3]=0x05;
                                if((KeyPress&4)==0)
                                        sendbuffer[3]=0x06;
                                if((KeyPress&8)==0)
                                        sendbuffer[3]=0x07;
                               
                                USBD_HID_SendReport(&hUsbDeviceFS,sendbuffer,9);//发送报文
                                memset(sendbuffer,0,9);
                                KeyDown=0;
                                KeyUp=0;
                       
                }
                else
                {
                        sendbuffer1[0]=1;
                        if((KeyPress&1)==0)
                        {
                                HAL_GPIO_WritePin(LD1_GPIO_Port, LD1_Pin, GPIO_PIN_SET);
                                sendbuffer1[2]=-10;
                        }
                        if((KeyPress&2)==0)
                                sendbuffer1[2]=10;
                        if((KeyPress&4)==0)
                                sendbuffer1[3]=-10;
                        if((KeyPress&8)==0)
                                sendbuffer1[3]=10;
                       
                        USBD_HID_SendReport(&hUsbDeviceFS,sendbuffer1,5);//发送报文
                        memset(sendbuffer1,0,5);
                        KeyDown=0;
                        KeyUp=0;
                }


板子上的键按下代表键盘功能,松开代表鼠标功能。又从另外一块板子上接了四个键。
我现在有一个疑问,圈圈的书上说,前面的例子发送报告是通过端点1,现在发送键盘报告是通过端点1,发送鼠标报告通过端点2.
那在程序里如何体现呢?
请高手指教,谢谢!

使用特权

评论回复
沙发
zhuotuzi| | 2023-6-19 21:22 | 只看该作者
你先实现一种试试。

使用特权

评论回复
板凳
zhuotuzi| | 2023-6-19 21:25 | 只看该作者
这个HAL库有例子吧,看看对比一下。

使用特权

评论回复
地板
比神乐|  楼主 | 2023-6-19 22:37 | 只看该作者
zhuotuzi 发表于 2023-6-19 21:22
你先实现一种试试。

试过了,一种没问题。

使用特权

评论回复
5
比神乐|  楼主 | 2023-6-19 22:38 | 只看该作者
本帖最后由 比神乐 于 2023-6-19 23:02 编辑
zhuotuzi 发表于 2023-6-19 21:22
你先实现一种试试。

HAL库好像没有带鼠标的USB键盘例子吧。

使用特权

评论回复
6
比神乐|  楼主 | 2023-6-19 22:40 | 只看该作者
我用BUS HOUND抓包,好像一上电就有错。

按键什么数据也发不出来。

使用特权

评论回复
7
田舍郎| | 2023-6-19 22:57 | 只看该作者
不错啊

使用特权

评论回复
8
比神乐|  楼主 | 2023-6-20 11:12 | 只看该作者
现在键盘好了,鼠标还是不行。

使用特权

评论回复
9
比神乐|  楼主 | 2023-6-20 12:24 | 只看该作者
键盘是用端点一发送数据,鼠标是用端点2发送数据。
用端点一和用端点2发送如何区分呢?谢谢

使用特权

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

本版积分规则

337

主题

3061

帖子

7

粉丝