STM32的USB如何使用端点0进行命令通信问题

2019-07-21 06:09发布

现在使用STM32F103单片机进行USB通信,现在是做USB的Keyboard模式和Custom模式,下通过端点0进行命令通信和指令响应。现在通信正常了。但如何使用USB的端点0进行上位机指令的接收和发送。我使用UserToPMABufferCopy(DataBuffer, GetEPTxAddr(ENDP0), Length); 和PMAToUserBufferCopy(Buffer, GetEPRxAddr(ENDP0), Length);都无法进行数据的接收和发送,因为也没使用过USB的端点0进行数据的通信,所以使用这两个函数,也无法进行数据的收发。希望能够解答一下关于USB的端点0如何进行数据的收发。非常感谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
灰太狼的伤疤
2019-07-23 02:05
case CUSTOM_HID_REQ_SET_REPORT:
      hhid->IsReportAvailable = 1U;
      USBD_CtlPrepareRx (pdev, hhid->Report_buf, req->wLength);
      break;

case CUSTOM_HID_REQ_GET_REPORT:
        Get_Report = 1;  
      break;



main 中:

if(有命令)
{处理命令,保存结果到数据发送区}
if(有数据发送)
{ if(Get_Report  == 1)     {读取数据 USBD_CtlSendData 发送函数
     Get_Report   = 0;
}}

一周热门 更多>