搜索
查看: 1225|回复: 1

[求助] STM32F4 HID设备 接收数据问题

[复制链接]

该用户从未签到

2

主题

7

帖子

0

蝴蝶豆

新手上路

最后登录
2019-5-16
发表于 2019-5-14 21:10:04 | 显示全部楼层 |阅读模式
HI

STM32F4作为HOST,Device为HID协议但不是标准的鼠标键盘(只有IN 和 OUT EP),这个外设需要HOST发送命令后,才会上传数据,具体流程:
① Host->Dev(发送命令)
② Dev准备数据  
③ Host读取数据

使用官方的USB HOST库,版本V3.2.2,搭建工程鼠标和键盘正常工作,自己修改加了一个自定义支持的HID类型,主要是注册了OUT 和 IN 端口。
然后修改了USBH_HID_Process 支持发送数据,问题:
在HID类 USBH_HID_Process 中加入了 SEND状态机,通过USBH_InterruptSendData发送数据,发送成功。但是通过USBH_InterruptReceiveData不成功,分两种情况都不成功:
1、注释掉SOF定期轮询,只发调用一次USBH_InterruptReceiveData,收不到数据。
2、打开SOF定期读数据,会收到一次NACK,一次64字节(数据长度正确)的数据包(但是不能触发接收完成中断),下一次SOF再次触发USBH_InterruptReceiveData会导致HardFault_Handler。


这个HID外设用Libusb读取成功。
回复

使用道具 举报

该用户从未签到

3

主题

1306

帖子

929

蝴蝶豆

版主

最后登录
2021-3-31
发表于 2019-6-10 17:15:14 | 显示全部楼层
一般来讲,首先看看增加端点后FIFO分配是否调整好。其次 看看枚举是否真正通过,SOF信号是否正常,最后再看通讯是否能工作。 因为这种通讯是异步通许,所以最好通过USB分析去确认是否真正完成
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-27 03:04 , Processed in 1.160655 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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