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

usb_dev_serial 波特率

您好,我想请问一下,有关usb_dev_serial这个例程。(用的是28069的launchpad)
1.这个模拟成串口的话,发送速率可以突破实际串口的速率吗,即大于115200,可以的话要改动哪里的配置,因为项目的原因,需要较高的波特率来进行数据传输,我在这个函数UARTConfigSetExpClk()里面把波特率改高,实际发送的速率好像没有变化(用一个测试串口速率的小程序进行测试)。
2.用什么发送语句或者函数来进行数据的发送,我现在用的是在while(1)中用UARTCharPutNonBlocking(UART0_BASE, ui8Char)来进行数据的发送,在115200的波特率下可以正常发送,按照我的问题1里的提高波特率之后,用串口助手读取的数据就有问题。不知道这样做对不对,这样属不属于虚拟串口传输。
因为项目比较紧急,希望能尽快得到答复。

Susan Yang:

1 关于波特率您可以参考 e2e.ti.com/…/723836

http://e2e.ti.com/support/microcontrollers/c2000/f/171/t/778028?TMS320F28375S-TMS320F28375S-usb-dev-serial-example-baud-rate-settings- 2 由于是重定向,因此在USB CDC通道上接收到的是在RxHandler中处理。对于从UART0接收到的内容,CheckForSerialStateChange用于传输。 如果您想向主机(PC)发送数据,则只需通过调用USBBufferWrite(&USBTxBuffer,&your_dataarray,num_bytes_you_want_to_send)将数据写入USBTxBuffer就可以了。

user6295096:

回复 Susan Yang:

很高兴您这么快回复我的问题!

我刚刚尝试用USBBufferWrite发送数据了(主要语句如下),电脑端的串口调试助手没有收到数据。我在想是不是我的板子实现不了USB传输。

 while(1)  {

  ui32Space1 = USBBufferSpaceAvailable((tUSBBuffer *)&g_sTxBuffer);          if(ui32Space1>=20)          {
              USBBufferWrite((tUSBBuffer *)&g_sTxBuffer,                                           (uint8_t *)&ui8UsbSend, 20);

          }
   }

我用的是28096的launchpad,上面只有一个mini-USB接口,如下图,之前通过这个接口用UARTCharPutNonBlocking可以发送数据。我之前看到网上说得连接两根线(一根mini USB和一根micro USB),所以在想是不是这个板子用不了USBBufferWrite函数,如果用不了的话,我该用什么板子?

user6295096:

回复 Susan Yang:

之前看到您好像也采购了28069的launchpad,麻烦您测试一下看看。ti\controlSUITE\device_support\f2806x\v151\F2806x_examples_ccsv5\usb_dev_serial的例程我只改动了While(1)和SysCtrlInit(void),因为这款板子只能用10MHz内部晶振,例程里的20MHz的晶振得自己外加才能用(按我的理解)。期待您的回复!

Susan Yang:

回复 user6295096:

谢谢您的反馈!

由于手边暂时没拿着板子,我会在周一测试后给您回复

Susan Yang:

回复 user6295096:

您需要使用带USB通信接口的TMDSCNCD28069ISO来测试该例程

www.ti.com/…/TMDSCNCD28069ISO

赞(0)
未经允许不得转载:TI中文支持网 » usb_dev_serial 波特率
分享到: 更多 (0)