打印

请教stm32 如何实现大批量 传输给pc

[复制链接]
5868|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nds_shenzhen|  楼主 | 2011-10-19 17:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教stm32 如何实现大批量 传输给pc?
我现在用官方提供的例子 Mass_Storage 修改,我要实现的传输的目的就是,stm32向pc传输大量采集回来的数据,pc上设计一个上位机软件接受数据保存。

为了加快传输速度,我打算用批量传输的方式,如何查考了Massstorage的例子进行修改。 我想知道如何修改这个例子呢?
我尝试着对usb_endp.c 文件进行如下屏蔽。
但是枚举就出现感叹号了,pc断也一直在向设备请求。

void EP1_IN_Callback(void)
{
  //Mass_Storage_In();
}

/*******************************************************************************
* Function Name  : EP2_OUT_Callback.
* Description    : EP2 OUT Callback Routine.
* Input          : None.
* Output         : None.
* Return         : None.
*******************************************************************************/
void EP2_OUT_Callback(void)
{
  //Mass_Storage_Out();
}
我想知道 如果要批量传输的话 需不需要让设备枚举完整呢?如果完整应该如何进行呢?
因为我实际上不需要枚举成一个完整的U盘,我只是需要这种枚举的方式,批量传输给PC。


}
沙发
nds_shenzhen|  楼主 | 2011-10-19 17:23 | 只看该作者
https://bbs.21ic.com/viewthread.p ... highlight=%2Bfjr115
以下是论坛上 关于 fjr115 的引用:
*********************************************************************
我的STM32 是利用ST官方的Mass_Storage修改的
端点1是IN  端点2是OUT  这两个端点都是批量传输端点
安装驱动后  我用Bus Hound 5向其发送数据 STM32能顺利接收
void EP2_OUT_Callback(void)
{
  PMAToUserBufferCopy(Bulk_Data_Buff, ENDP2_RXADDR, 64);
  SetEPRxValid(ENDP2);
  UserToPMABufferCopy(sendBufferr, GetEPTxAddr(ENDP1), 64);
  SetEPTxCount(ENDP1, 64);
  SetEPTxValid(ENDP1);
}
但我试图通过
  UserToPMABufferCopy(sendBufferr, GetEPTxAddr(ENDP1), 64);
  SetEPTxCount(ENDP1, 64);
  SetEPTxValid(ENDP1);
来向上位机发送数据 但Bus Hound 5中看不到有任何来自STM32的数据
所以想问一下这是什么原因 谢谢
******************************************************************
我想知道 这样修改之后  设备没有枚举完整成为u盘  pc同时还一直向设备请求  这样能够传输用户的数据吗?  这样是否正确??

使用特权

评论回复
板凳
nds_shenzhen|  楼主 | 2011-10-19 18:08 | 只看该作者
有谁能够告诉我吗?

使用特权

评论回复
地板
nds_shenzhen|  楼主 | 2011-10-19 20:19 | 只看该作者
自己先顶着

使用特权

评论回复
5
香水城| | 2011-10-19 21:42 | 只看该作者
USB设备不能主动发送数据,必须是主机方来要才能被动地发数据;比如USB Mass_Storage,只有在主机端主动要读U盘中的数据时,设备才能送出数据。

使用特权

评论回复
6
_crystal_| | 2011-10-22 20:29 | 只看该作者
是不是该用虚拟串口的例子修改?

使用特权

评论回复
7
mcuisp| | 2011-10-22 23:40 | 只看该作者
本帖最后由 mcuisp 于 2011-10-22 23:45 编辑

香版说的“USB设备”,指“任何USB设备”,虚拟串口也不例外。
没有枚举成功,是不会有任何用户的数据能被传输的。

使用特权

评论回复
8
nds_shenzhen|  楼主 | 2011-10-23 10:48 | 只看该作者
是不是该用虚拟串口的例子修改?
_crystal_ 发表于 2011-10-22 20:29

是的 就是那个例子

使用特权

评论回复
9
nds_shenzhen|  楼主 | 2011-10-23 10:54 | 只看该作者
USB设备不能主动发送数据,必须是主机方来要才能被动地发数据;比如USB Mass_Storage,只有在主机端主动要读U盘中的数据时,设备才能送出数据。
香水城 发表于 2011-10-19 21:42

谢谢版主

使用特权

评论回复
10
nds_shenzhen|  楼主 | 2011-10-23 10:55 | 只看该作者
香版说的“USB设备”,指“任何USB设备”,虚拟串口也不例外。
没有枚举成功,是不会有任何用户的数据能被传输的。
mcuisp 发表于 2011-10-22 23:40

我想向你请教 关于另外一个帖子的 大批量传输的无驱动的方式,你能够告诉我如何进行吗?谢谢

使用特权

评论回复
11
mcuisp| | 2011-10-23 11:41 | 只看该作者
你可以去搜搜专利库

使用特权

评论回复
12
nds_shenzhen|  楼主 | 2011-10-24 15:32 | 只看该作者
:P

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

38

帖子

1

粉丝