//修改BUFF_LENGTH的长度即可修改每个包的大小
u8 Receive_Buffer[BUFF_LENGTH];
u8 Transi_Buffer[BUFF_LENGTH];
如果设置buffer的大小为64,但是只发送10个数据,那10个数据的后面会出现乱码,是因为USB在发送信号的时候都是以64为单位打包的(推断)。
//USB发送字符串
void USB_SendString(u8 *str) //
{
u8 ii=0;
while(*str)
{
Transi_Buffer[ii++]=*(str++);
if (ii ==10) break;
}
UserToPMABufferCopy(Transi_Buffer, ENDP2_TXADDR, 10);
_SetEPTxStatus(ENDP2,EP_TX_VALID);
}
在修改完程序后,重启STM32,然后使用USB调试助手搜索USB设备,打开USB设备即可与STM32通信。有时候调试助手会找不到STM32或者找到了时钟接收不到数据,这时应在调试助手中断开USB设备,重启STM32然后再次搜索设备,连接设备。