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读取成功。 |
一般来讲,首先看看增加端点后FIFO分配是否调整好。其次 看看枚举是否真正通过,SOF信号是否正常,最后再看通讯是否能工作。 因为这种通讯是异步通许,所以最好通过USB分析去确认是否真正完成 |
STM32F407 USB怎么测试接口的极限速度
大佬们,请教有关串口通信问题
STM32F407ZGT6物料表面丝印问题
stm32f407进入boot里,通过DFU更新程序,没有识别到usb设备
STM32F4作为SPI从机,主机发送完数据后,从机没有正确进入中断
stm32cubeide如何修改芯片型号和启动文件
CDC_Transmit_HS 卡死
修改stm32f407 tim14的ccr1,但是占空比不变?
修改stm32f407 tim14的ccr1,但是占空比不变
STM32IDE工程内如何访问、计算得到当前程序flash已经使用的情况?