你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

USB发送数据异常

[复制链接]
一杯茶 提问时间:2018-8-6 15:08 /
本帖最后由 一杯茶 于 2018-8-6 15:18 编辑

使用STM32F205模拟USB键盘,使用USBD_HID_SendReport发送键盘模拟值时出现异常。 USBD_HID_SendReport(&hUsbDeviceFS,Keybd1,8);
其中Keybd1为模拟的数据{0x00,0x00,0x59,0x00,0x00,0x00,0x00,0x00}
8个字节为0时发送正常。但只要发送的8个字节有不为0,就会出现不断重复发送的情况,根本停不下来。

使用抓包软件看了下数据:数据明显异常。不知道问题出在哪,有遇到同样问题的吗?
TIM图片20180806150804.png
收藏 评论7 发布时间:2018-8-6 15:08

举报

7个回答
zcl201207 回答时间:2018-8-6 20:44:24
发送了键盘值之后,需要接着发送一个空值(即你说的0),否则电脑就会误以为你一直按着键盘按键不放。。。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

feixiang20 回答时间:2018-8-7 00:14:40
修改数据长度看看

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

一杯茶 回答时间:2018-8-7 08:57:59
zcl201207 发表于 2018-8-6 20:44
发送了键盘值之后,需要接着发送一个空值(即你说的0),否则电脑就会误以为你一直按着键盘按键不放。。。: ...

添加发送空值也不行,抓包显示还是出现异常:按照程序设置应该是键值和空值交替发送才对。不光二者不是交替发送还多了莫名奇妙的数据。
下面是主程序和抓包截图:

int main(void)                                                                                                                                   
{

   uint8_t txbuffer[8]= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
   uint8_t sendbuffer[8]={0x00,0x00,0x2c,0x00,0x00,0x00,0x00,0x00};
   HAL_Init();
   SystemClock_Config();
   MX_GPIO_Init();
   MX_DMA_Init();
   MX_USB_DEVICE_Init();
   HAL_Delay(10000);
  
  while (1)
  {

    USBD_HID_SendReport(&hUsbDeviceFS,sendbuffer,8); // uint8_t sendbuffer[8]={0x00,0x00,0x2c,0x00,0x00,0x00,0x00,0x00};
    USBD_HID_SendReport(&hUsbDeviceFS,txbuffer,8);     // uint8_t txbuffer[8]= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

  }

}

抓的数据包

抓的数据包
一杯茶 回答时间:2018-8-7 09:00:42
本帖最后由 一杯茶 于 2018-8-7 09:07 编辑
feixiang20 发表于 2018-8-7 00:14
修改数据长度看看

后面那个12字节长度的东西是莫名出现的,并不是我发送的。发送长度修改为7后,那个12字节长度的东西没有再出现但是还是不对,数据没有交替出现,而是都是重复发送几次。

修改长度后的抓包数据

修改长度后的抓包数据
zcl201207 回答时间:2018-8-7 22:01:28
执行一次报告发送函数,仅仅是把要发送的数据拷到数据缓冲区,不代表立即发送到主机,也就是说运行报告函数和数据发送到主机不是同步的,你仔细想想看,这样主机收到的数据是不是几乎不会严格交替。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

一杯茶 回答时间:2018-8-9 17:55:39
zcl201207 发表于 2018-8-7 22:01
执行一次报告发送函数,仅仅是把要发送的数据拷到数据缓冲区,不代表立即发送到主机,也就是说运行报告函数 ...

顿悟,呵呵,感谢!!
ljd2018 回答时间:2018-9-11 11:31:59
楼主 最后怎么处理的呀?发出来参考参考 感谢!

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版