本帖最后由 KC_CEC 于 2013-9-9 16:00 编辑
修改了一些ST库(STM32_USB-Host-Device_Lib_V2.1.0)的例子,但是接收程序有问题。
下面是我的收发程序:
void USB_SEND(uint8_t* Buf,uint32_t Length)
{
uint32_t i;
for(i= 0;i<Length;i++)
{
APP_Rx_Buffer[APP_Rx_ptr_in]=*(Buf++);
APP_Rx_ptr_in++;
}
// To avoid buffer overflow
if(APP_Rx_ptr_in == APP_RX_DATA_SIZE)
{
APP_Rx_ptr_in = 0;
}
}
void USB_Receive(uint8_t *Buf,uint32_t Length)
{
uint32_t i;
/* Send the received buffer */
for (i = 0; i < Length; i++)
{
Buf=USB_Rx_Buffer;
USB_Rx_Buffer = 0;
}
}
发送函数没有问题,比较稳定,但是接收函数每接收几千个字节单片机就挂掉了。
应用函数如下:
USB_Receive(ReceiveBuffer,1);
if(ReceiveBuffer[0]==0x58) USB_SEND("接收到数据!",17);
我对USB协议不是很熟悉,希望大家指点一下,谢谢! |