对 例说STM32 里面USB触控鼠标 进行修改,修改为接收无线数据16Byte后上传PC,
现在接收OK,可以上传Pc,但是Pc下看到的数据长度始终为4,
我已将端点描述符和报表描述符中长度做了修改,但问题始终没能解决,
我估计是 在usb上传函数中出了问题,因为这里没看懂,希望行家指教
//调用函数,数据长度为16
Send_data_to_usb(rx_buf,16);
//将rx_buf中数据送到 Usb
void Send_data_to_usb(u8 *rx_buf,u8 length)
{
UserToPMABufferCopy(rx_buf, GetEPTxAddr(ENDP1), length);
SetEPTxValid(ENDP1);
}
//送入部分
void UserToPMABufferCopy(u8 *pbUsrBuf, u16 wPMABufAddr, u16 wNBytes)
{
u32 n = (wNBytes + 1) >> 1; /* n = (wNBytes + 1) / 2 */
u32 i, temp1, temp2;
u16 *pdwVal;
pdwVal = (u16 *)(wPMABufAddr * 2 + PMAAddr);
for (i = n; i != 0; i--)
{
temp1 = (u16) * pbUsrBuf;
pbUsrBuf++;
temp2 = temp1 | (u16) * pbUsrBuf << 8;
*pdwVal++ = temp2;
pdwVal++;
pbUsrBuf++;
}
} |