Quantcast
Channel: 数字信号处理器 (DSP) & ARM® 微处理器
Viewing all articles
Browse latest Browse all 21822

帖子: 急!C6678,UART部分,使用STK上的初始化程序及读写操作,发现每次只能读到16字节数据,再多就读不到了,求指点!

$
0
0

大家好,求大家指点,我用的是STK上的例程写的UART程序,只用了UART初始化部分和读写操作程序,没有使用中断和EDMA搬运,但是现在遇到了一个问题,就是每次数据传输时,只能读取到我发送的前16字节数据,或者是最后的一个字节数据加上前15字节数据。代码如下:

使用的读写命令:

写命令:KeyStone_UART_write(&r_cmd[0], 1, 0);

读命令:KeyStone_UART_read(&r_buf[i], 64, 0);

UART初始化部分代码:

波特率:115200,ioopback模式为0,TEST_UART_NUM=0;

 memset(&gUARTCfg, 0, sizeof(gUARTCfg));
 gUARTCfg.baudRate = baudRate;
 gUARTCfg.DSP_Core_Speed_Hz = gDSP_Core_Speed_Hz;
 gUARTCfg.dataLen = DATA_LEN_8BIT;
 gUARTCfg.parityMode = PARITY_DISABLE;
 gUARTCfg.stopMode = ONE_STOP_BIT;
    gUARTCfg.autoFlow = AUTO_FLOW_DIS;
 gUARTCfg.osmSel = OVER_SAMPLING_16X;
    gUARTCfg.fifoRxTriBytes = TRIGGER_LEVEL_14BYTE;
    gUARTCfg.txMaster = txMaster;
 gUARTCfg.bLoopBackEnable = bLoopBackEnable;
 KeyStone_UART_init(&gUARTCfg, TEST_UART_NUM);
读命令代码:
unsigned int KeyStone_UART_read(unsigned char *buffer,
 unsigned int buffByteLen, Uint32 uartNum)
{
    Uint32 byteCnt;
    CSL_UartRegs *localUART_Regs;
 localUART_Regs = gpUartRegs[uartNum];
 for(byteCnt=0; byteCnt<buffByteLen; byteCnt++)
 {
  if(localUART_Regs->LSR & CSL_UART_LSR_DR_MASK)
  {
   buffer[byteCnt] = localUART_Regs->RBR;
  }
  else  //FIFO empty
   break;
 }
 return byteCnt;
}

Viewing all articles
Browse latest Browse all 21822

Trending Articles