你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

keil USB组件

[复制链接]
z19820201 提问时间:2015-4-10 13:01 /
开发环境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后就不再继续增加了。
有谁知道是怎么回事么?求助!
收藏 评论8 发布时间:2015-4-10 13:01

举报

8个回答
story_xjj 回答时间:2015-4-10 13:17:07
似乎不能简单修改完成数据交换,还是应该好好研究一下usb的描述文件
z19820201 回答时间:2015-4-10 13:37:34
story_xjj 发表于 2015-4-10 13:17
似乎不能简单修改完成数据交换,还是应该好好研究一下usb的描述文件

但是PC认到了,而且也能通信。我用串口调试软件跑了15个小时都没有问题的。不过那是在超级循环里面用USBD_CDC_ACM_ReadData函数读,然后用USBD_CDC_ACM_WriteData函数原样返回。后来发现有USBD_CDC0_ACM_DataReceived这个回调函数,就想使用这个回调函数。然后就出现这个问题了,不知道是哪里设置不对还是keil库的bug。
回答时间:2015-4-10 14:16:13
楼主可以把工程传一下吗?USBD_CDC0_ACM_DataReceived这个查找一下,他到底是用来做什么的。
z19820201 回答时间:2015-4-10 14:57:27
安 发表于 2015-4-10 14:16
楼主可以把工程传一下吗?USBD_CDC0_ACM_DataReceived这个查找一下,他到底是用来做什么的。 ...

void USBD_CDCn_ACM_DataReceived  ( uint32_t  len )  

Function indicating new data was received by USB CDC class Device (Virtual COM Port)

Parameters
[in] len number of bytes available to read.  

Returns
none.
The function USBD_CDCn_ACM_DataReceived notifies that there is newly received data available.

The argument len is number of bytes available to read. Modify this function to the application needs.

Note
Callback when new data is received on Bulk OUT Endpoint.
z19820201 回答时间:2015-4-10 16:12:35
升了个级搞定。
未命名.PNG
zfz0122 回答时间:2015-4-11 11:47:01
不懂帮顶了 smile.gif
eurphan 回答时间:2015-4-11 18:37:09
不懂帮顶   
story_xjj 回答时间:2015-4-13 15:11:00

恭喜楼主啊
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版