OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3671|回复: 1

模拟USB鼠标自动刷快手抖音

[复制链接]

1

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2021-1-11
在线时间
7 小时
发表于 2021-3-3 21:29:51 | 显示全部楼层 |阅读模式
工程模板采用STM32F1官方的USB HID例子,在此基础上修改鼠标的动作,主要代码如下,有需要的请参考


/* Private functions ---------------------------------------------------------*/
/*
鼠标发送给PC的数据每次4个字节
BYTE1 BYTE2 BYTE3 BYTE4
定义分别是:
BYTE1 --
       |--bit7:   1   表示   Y   坐标的变化量超出-256   ~   255的范围,0表示没有溢出  
       |--bit6:   1   表示   X   坐标的变化量超出-256   ~   255的范围,0表示没有溢出  
       |--bit5:   Y   坐标变化的符号位,1表示负数,即鼠标向下移动  
       |--bit4:   X   坐标变化的符号位,1表示负数,即鼠标向左移动  
       |--bit3:     恒为1  
       |--bit2:     1表示中键按下  
       |--bit1:     1表示右键按下  
       |--bit0:     1表示左键按下  
BYTE2 -- X坐标变化量,与byte的bit4组成9位符号数,负数表示向左移,正数表右移。用补码表示变化量  
BYTE3 -- Y坐标变化量,与byte的bit5组成9位符号数,负数表示向下移,正数表上移。用补码表示变化量
BYTE4 -- 滚轮变化。
*/
/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
int main(void)
{
  uint16_t i;
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
  /* Configure the system clock to 72 MHz */
  SystemClock_Config();
  /* Initialize LED2 */
  BSP_LED_Init(LED2);
  /* Configure Key button for remote wakeup */
  BSP_PB_Init(BUTTON_USER, BUTTON_MODE_EXTI);
  /* Init Device Library */
  USBD_Init(&USBD_Device, &HID_Desc, 0);
  /* Register the HID class */
  USBD_RegisterClass(&USBD_Device, USBD_HID_CLASS);
  /* Start Device Process */
  USBD_Start(&USBD_Device);
  while (1)
  {
    /* Insert delay 100 ms */
    BSP_LED_Toggle(LED2);
    HID_Buffer[2]=0;
    for(i=0;i<60;i++){
        if(i>35){
            HID_Buffer[0]=0;//抬起鼠标左键
        }else{
           HID_Buffer[0]=0x01;//按下鼠标左键拖动
        }
        HID_Buffer[1]=0x00;//x
        HID_Buffer[2]-=2;//y
        HID_Buffer[3]=0x00;
        USBD_HID_SendReport(&USBD_Device, HID_Buffer, 4);
        HAL_Delay(20);
    }
    BSP_LED_Toggle(LED2);
    //复位鼠标位置
    HID_Buffer[2]=0;
    for(i=0;i<12;i++){
        HID_Buffer[0]=0x00;
        HID_Buffer[1]=0x00;//x
        HID_Buffer[2]+=10;//y
        HID_Buffer[3]=0x00;
        USBD_HID_SendReport(&USBD_Device, HID_Buffer, 4);
        HAL_Delay(50);
    }
    HAL_Delay(15000);
  }
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

116

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4082
金钱
4082
注册时间
2017-11-15
在线时间
331 小时
发表于 2021-3-9 09:36:48 | 显示全部楼层
www.littlebutler.top
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-12 12:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表