STM32通过USB向上位机发送数据上位机无法接收到

yuni97   2010-7-18 23:02 楼主


我的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的数据
所以想问一下这是什么原因 谢谢

回复评论 (9)

                                 因为上位机没有取数据。
点赞  2010-7-19 09:00
USB通信都是由主机发起的

如果主机没有请求数据,STM32是不会发送的
点赞  2010-7-19 10:18
                                 怎样使上位机取数据?
点赞  2010-7-19 11:05
怎样使上位机取数据?
这是上位机驱动的事情,我也不知道怎么做。
点赞  2010-7-19 14:00
                                 哦 这样
点赞  2010-7-19 14:26
                                 上位机还需要取数据吗,应该是有数据就接收吧,串口不就是这样的吗
点赞  2010-7-19 15:39
上位机还需要取数据吗,应该是有数据就接收吧,串口不就是这样的吗
汗,,,,你凭什么去应该呢?

如果串口和USB一样,那还要USB干吗呢,直接串口好来。
点赞  2010-7-19 16:01
                                 usb的协议 必须主发请求给从的  不然想想多挂几个从usb 就乱套了
点赞  2010-7-19 20:31
搞定了  原因就在 "这是上位机驱动的事情,我也不知道怎么做。"
编了个程序取数据后就OK了  谢谢版主 谢谢各位
点赞  2010-7-19 21:14
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复