TI中文支持网
TI专业的中文技术问题搜集分享网站

关于F28377D的USB例程问题

本人没有仔细学习USB协议,所以只有照抄TI的、憋脚的USB例程了。

现在的进展情况,通过修改USB_DEV_BULK,能够在接收主机发送的信息后,向主机传送数据。

经过看例程,说运行USBBufferDataWritten函数就可以向主机传送数据,

但是,我另做了一个函数,在更新g_sTxBuffer之后,调用这个USBBufferDataWritten函数,却不能将数据传到主机,这是为什么?

谢谢大家

TX dong:

函数如下:
注:此函数目的是想把存储在SDRAM时的数据发送给上位机。

void CopyUsbData2Transmit(Uint16 ch)
{tUSBRingBufObject sTxRing;Uint16 i,j,k,t,TxBlock,TxAddr ;
Uint32 WritePoint;volatile Uint32*p;

if ( ch ){p= (volatile Uint32 *)0x80000000;}else{p= (volatile Uint32 *)0x80C00000;}TxBlock =TransferNumber + 1;

USBBufferInfoGet(&g_sTxBuffer, &sTxRing);
WritePoint = sTxRing.ui32WriteIndex;// write point
for ( i = 0; i < TxBlock; i++ ){for ( j = 0; j < 512; j++ ){for ( k = 0; k < 128; k++ ){// Data is 16bit in SDRAM, and transmit is 8bitt = *p;g_pui8USBTxBuffer[WritePoint] = t >> 8;WritePoint++;WritePoint = (WritePoint == BULK_BUFFER_SIZE) ? 0 : WritePoint;
g_pui8USBTxBuffer[WritePoint] = t & 0xFF;WritePoint++;WritePoint = (WritePoint == BULK_BUFFER_SIZE) ? 0 : WritePoint;
p++;}
USBBufferDataWritten(&g_sTxBuffer, /*TxBufSize*/BULK_BUFFER_SIZE );Delay_mS(1);}}
}

TX dong:

回复 TX dong:

是不是作为device就只能被动传送数据?

Susan Yang:

请问您现在使用的是哪个例程,能否给出路径?usb_dev_bulk?是否使用TI开发板?您现在主要是想实现什么功能?

另外若是可以的话,请给出/私信一下您的 工程,我们来测试一下,谢谢

Susan Yang:

回复 TX dong:

若是想USB和上位机传输数据的话,可以使用usb_dev_serial这个例程,它就是把USB模拟成串口,电脑装驱动后直接就是串口了,直接串口助手就可以了。

驱动的话,可以在下面的路径内找到C:\ti\controlSUITE\device_support\F2837xD\v210\F2837xD_common\windows_drivers

TX dong:

回复 Susan Yang:

谢谢您。

程序就是上次传给您的,不是开发板,是自己做的板子。

TX dong:

回复 Susan Yang:

下次再用了,试一下这个例程。
不过有个问题我一直没有明白,在本论坛也没有找到答案。就是,模拟串口,必须占用某个实际存在的串口吗?所占用的这个串口,端口上是不是也会有信号?

Susan Yang:

回复 TX dong:

usb_dev_serial例程是实现USB虚拟串口通信。开发板工作在USB Device模式,当连接到PC时,USB作为模拟串口使用,PC会安装驱动usb_dev_serial.inf。

USB模块在做模拟串口时,不会强制占用芯片的一个UART模块

论坛是有相关的讨论的,请查看下面的链接,Young Hu讲得非常清晰

https://e2echina.ti.com/question_answer/microcontrollers/stellaris_arm/f/57/t/2396 

Susan Yang:

回复 TX dong:

另外英文论坛上也有一些讨论,TI的usb_dev_serial例程在不同MCU上实现的功能原理基本是一样的

e2e.ti.com/…/497724

赞(0)
未经允许不得转载:TI中文支持网 » 关于F28377D的USB例程问题
分享到: 更多 (0)