[mw_shl_code=c,true]int main(void)
{
//u8 t=0;
Set_System();
delay_init(72);
Set_USBClock();
USB_Interrupts_Config();
USB_Init();
KEY_Init();
//SetEPRxValid(ENDP1);
while(1)
{
//RX_DataLen = GetEPRxCount(ENDP1);
PMAToUserBufferCopy(Receive_Buffer, ENDP1_RXADDR,22); //把缓冲区的数据拷贝到Receive_Buffer
SetEPRxValid(ENDP1);
if(KEY0==0)
{
delay_ms(10);//去抖动
if(KEY0==0)
{ USB_SendString(Receive_Buffer);
for(i=0;i<256;i++){Receive_Buffer=0;
}
}
while(!KEY0); //等待松开。
delay_ms(10); //再次去抖动。
while(!KEY0);
}
}
}
void USB_SendString(u8 *str) //
{
u8 ii=0;
while(*str)
{
Transi_Buffer[ii++]=*(str++);
if (ii ==256) break;
}
UserToPMABufferCopy(Transi_Buffer, ENDP2_TXADDR, 256);
_SetEPTxStatus(ENDP2, EP_TX_VALID);
}[/mw_shl_code]
用USB调试助手发一个数据“123”,单片机能收到,在通过按键触发 将数据“123”发到上位机都可以实现,但第二次再发别的数据的时候,比如再通过USB助手发“456”,再按按键,上位机接收到的依然是“123”.请问高手们这是怎么回事?
|