完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
开发环境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后就不再继续增加了。 有谁知道是怎么回事么?求助! |
|
相关推荐
10个回答
|
|
|
似乎不能简单修改完成数据交换,还是应该好好研究一下u***的描述文件
|
|
|
|
|
|
但是PC认到了,而且也能通信。我用串口调试软件跑了15个小时都没有问题的。不过那是在超级循环里面用USBD_CDC_ACM_ReadData函数读,然后用USBD_CDC_ACM_WriteData函数原样返回。后来发现有USBD_CDC0_ACM_DataReceived这个回调函数,就想使用这个回调函数。然后就出现这个问题了,不知道是哪里设置不对还是keil库的bug。 |
|
|
|
|
|
楼主可以把工程传一下吗?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. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
不懂帮顶
|
|
|
|
|
|
|
|
|
|
|
|
感觉这个函数时通知程序已经接收到u***的数据,并且告诉你收到了多少个字节数据,实际并没有将数据转移到用户缓冲区,增加一个数据读取功能看是否会有改善
|
|
|
|
|
|
楼主代码发布一下呀
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 20:18 , Processed in 1.766282 second(s), Total 58, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1471