[STM32F1] 使用cubemx的USB CDC 模式,在调用USB_CDC_Receive函数有疑问

[复制链接]
3646|7
 楼主| forrest11 发表于 2018-12-20 00:44 | 显示全部楼层 |阅读模式
本帖最后由 forrest11 于 2018-12-20 00:46 编辑

使用cubemx的USB CDC 模式,在调用USB_CDC_Receive函数有疑问:
1. 疑问1:
下面是CubeMX产生的函数,我看到函数根本就没有用参数*Len,理解是否对?这是怎么回事?

static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
{
  /* USER CODE BEGIN 6 */
  USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
  USBD_CDC_ReceivePacket(&hUsbDeviceFS);
  return (USBD_OK);
  /* USER CODE END 6 */
}


2. 疑问2:
我如果在main()调用:int8_t CDC_Receive_FS,则出现以下错误:
compiling main.c...
../Inc/usbd_cdc_if.h(135): error:  #114: function "CDC_Receive_FS"  was referenced but not defined
  static int8_t CDC_Receive_FS(uint8_t* pbuf, uint32_t *Len);

可实际上这是CubeMx产生的函数(在usbd_cdc_if.c内定义),我也引用了:usbd_cdc_if.h,在usbd_cdc_if.h里面加上了此函数,还是没有解决此问题。
是什么导致此问题?
USB接收处理一般应该用哪个函数?

我使用的软件:MDK-ARM 5.23
芯片:STM32F107VC
谢谢!


mmuuss586 发表于 2018-12-23 20:06 | 显示全部楼层
应该是少些库文件吧
xiaoqizi 发表于 2019-1-1 17:11 | 显示全部楼层
貌似代码不全啊
木木guainv 发表于 2019-1-1 17:15 | 显示全部楼层
路径定义问题
碧云天书 发表于 2019-1-2 12:19 来自手机 | 显示全部楼层
CDC_Receive_FS这个函数不是给你调用的,它是USB的回调函数。这个函数被调用的时候,说明已经接收到一批从USB主机传来的数据了,数据存放在Buf指向的空间,数据长度为*Len。
 楼主| forrest11 发表于 2019-1-2 14:56 | 显示全部楼层
碧云天书 发表于 2019-1-2 12:19
CDC_Receive_FS这个函数不是给你调用的,它是USB的回调函数。这个函数被调用的时候,说明已经接收到一批从U ...

谢谢,我这些天已经知道了。还好现在已经调通了。
KingSpring 发表于 2019-6-20 15:10 | 显示全部楼层
forrest11 发表于 2019-1-2 14:56
谢谢,我这些天已经知道了。还好现在已经调通了。

请问你是调用的哪个函数作为接收的,我现在也遇到了这个问题,
cugbzhangwp 发表于 2019-12-21 13:47 | 显示全部楼层
forrest11 发表于 2019-1-2 14:56
谢谢,我这些天已经知道了。还好现在已经调通了。

你这种人自己问题解决了不过来结帖的人最最烦人!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:个人博客:http://blog.**/forrest11

37

主题

1093

帖子

14

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