我用的是万利的板,我试着收到数据后发回主机,可是主机收不到,奇怪的是事实上buffer里是有数的,我试着加入按键主动返回数据,结果是把之前想返回的数和按键反馈得数一起发回来了,当USB发给板子数据后就回不来,按键响应OK。这个问题烦恼很久了可是查不到答案,那位有类似经验帮忙一下啊?
代码如下:
main程式:
while (1)
{
if ((count_out != 0) && (bDeviceState == CONFIGURED))
{
datalen=count_out;
for(i=0;i<=count_out;i++){mybuffer[i]=buffer_out[i];}
Mydata_To_USB_Send_Data(&mybuffer[0],datalen);
count_out = 0;
}
发数据:
void Mydata_To_USB_Send_Data(u8* data_buffer, u8 Nb_bytes){
UserToPMABufferCopy(data_buffer, ENDP1_TXADDR, Nb_bytes);
SetEPTxCount(ENDP1, Nb_bytes);
SetEPTxValid(ENDP1);
}
按键就没问题:
if ((JoyState() != 0))
{
mykey=JoyState();
while((JoyState() != 0));
mybuffer[0]=mykey;
Mydata_To_USB_Send_Data(&mybuffer[0],1);
}
} |