STM32/STM8技术william hill官网
直播中

贾永世

7年用户 1796经验值
私信 关注
[问答]

关于USB驱动的回调函数问题

开发环境MDK5.12 ,Keil RTX,MDK-Pro,STM32F407
想用USB跑MODBUS,不会写USB驱动,所以就用虚拟串口的程序修改下使用。也就是删除了虚拟串口中与串口有关的代码。使用USB接收PC数据和USB往PC发送数据。
现在的问题是这个回调函数
void USBD_CDC0_ACM_DataReceived( uint32_t len )
{
         uRxCnt += len;
}
当uRxCnt=191后就不再继续增加了。
有谁知道是怎么回事么?求助!

回帖(4)

陈秀英

2018-9-29 09:34:26
似乎不能简单修改完成数据交换,还是应该好好研究一下u***的描述文件
1 举报
  • 周凯: 谢谢分享,学习学习。

陈伟

2018-9-29 09:34:37
在超级循环里面用USBD_CDC_ACM_ReadData函数读,然后用USBD_CDC_ACM_WriteData函数原样返回。后来发现有USBD_CDC0_ACM_DataReceived这个回调函数,就想使用这个回调函数。然后就出现这个问题了,不知道是哪里设置不对还是keil库的bug。
举报

王萍

2018-9-29 09:34:52
楼主可以把工程传一下吗?USBD_CDC0_ACM_DataReceived这个查找一下,他到底是用来做什么的。
举报

刘燕

2018-9-29 09:35:27
感觉这个函数时通知程序已经接收到u***的数据,并且告诉你收到了多少个字节数据,实际并没有将数据转移到用户缓冲区,增加一个数据读取功能看是否会有改善
举报

更多回帖

发帖
×
20
完善资料,
赚取积分