[STM32F4] usb vcp host端,不能被动接收数据

[复制链接]
956|15
 楼主| zyj213 发表于 2022-8-31 19:14 | 显示全部楼层 |阅读模式
ST, os
请教一下
我们需要用f4xx做usb vcp host端,
用cubeide生成了usb host端的 virtual com port代码工程,能够正常识别插入的vcp设备,
但是发现usb vcp device端发的数据,host不会主动收,
需要host端定时调用receive的函数才能收到,请问有没有办法让host端不轮询读呢?像串口中断接收那样,不是很懂usb cdc,请各位大佬帮帮忙
海滨消消 发表于 2022-9-5 11:05 | 显示全部楼层
USB通信基于主从结构,所有的通信传输都是由HOST发起的。即使从设备要向主发数据,也得等主发读取命令才可以,否则HOST就没法正常接收来自从设备的数据的。所以你的代码也得按这个机制来安排。
duo点 发表于 2022-9-5 11:05 | 显示全部楼层
我用的是标准库,在以下代码中添加,我不确定HAL库中是如何操作的。我生成一个试试。
static uint16_t VCP_DataRx (uint8_t epnum,uint8_t* Buf, uint32_t Len)
{
        switch(epnum+0x80)
        {
                case CDC_IN_EP1:
                        USART_rx(Buf, Len);
                        break;
                default:
                        break;
        }
  return USBD_OK;
}
Stahan 发表于 2022-9-11 22:17 | 显示全部楼层
代码得按主从机制来吧
LLGTR 发表于 2022-9-13 14:24 | 显示全部楼层
USB主机需要主动去读,这是一种协议的定义,不过HAL应该有开启读模式。
LinkMe 发表于 2022-9-13 15:25 | 显示全部楼层
是不是接收到数据时候需要再次调用receive函数?
地下縱情搖擺 发表于 2022-9-21 01:18 | 显示全部楼层
是不是得修改描述符啊

热爱童话世界 发表于 2022-9-21 01:40 | 显示全部楼层
正常应该是可以接受数据啊

极客晨星 发表于 2022-9-21 02:02 | 显示全部楼层
USB有中断的,是可以自动收数据的啊

一枝香 发表于 2022-9-21 02:24 | 显示全部楼层
你可以把代码发出来,帮你分析一下

銀河 发表于 2022-9-21 02:46 | 显示全部楼层
不需要轮询的吧,你是符合设备么?

晚晚皆安 发表于 2022-9-21 05:04 | 显示全部楼层
是可以自动收数据的,你是不是需要调用之类啊?

偷吻月亮 发表于 2022-9-21 05:26 | 显示全部楼层
VCP设备是类似于摄像头那种么?

笨蛋无需搭理 发表于 2022-9-21 05:48 | 显示全部楼层
中断获取呗,不轮询的话

占得人间第一春 发表于 2022-9-21 06:11 | 显示全部楼层
这你要看有没有中断触发,如果有的话,就好弄一些

喜爱弄人 发表于 2022-9-21 06:34 | 显示全部楼层
这还是问问技术支持吧,ST的技术支持应该能解决


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

本版积分规则

34

主题

143

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部