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

iwr6843 串口发送

您好:

  我使用for循环语句发送串口数据,但是数据发送不正确,当我使用断点仿真时,数据就能正常发送。程序部分如下:

for(i=0; i<8; i++)
{
txBuffer_reg=txBuffer[i];
int cout = UART_writePolling(gCLI.cfg.cliUartHandle,&txBuffer_reg,sizeof(txBuffer_reg));

}

是因为不能用for循环发送数据吗?

谢谢!

Chris Meng:

你好,

mmw demo本身里面串口输出也是有for循环的。

请问你串口发送数据是加载了mmw demo的串口输出后面么?你是否有确认串口数据输出的时间在下一个frame开始前可以结束?

user6310217:

回复 Chris Meng:

您好:

 串口输出是加载在开箱检测的demo   cli_task任务中, 串口数据输出的时间如何确认?如何在上一帧完成后,在发送下一帧数据?

谢谢

Chris Meng:

回复 user6310217:

user6310217串口数据输出的时间如何确认?

通过串口波特率和串口传输数据量来计算获得。

user6310217如何在上一帧完成后,在发送下一帧数据?

你说的帧是射频的frame?射频的frame帧的周期在射频配置里面设定

user6310217:

回复 Chris Meng:

您好:

 因为程序根据需要设置第一字节为奇校验后面字节为偶校验。所以我程序中加入了如下程序;

 发送跟接收都是同样的思路。但现在接收不到正确的数据。

 请问这种设置奇偶的方法是否可行。

for(i=0; i<8; i++) {     txBuffer_reg=txBuffer[i];     int status = UART_writePolling(gCLI.cfg.cliUartHandle,&txBuffer_reg,sizeof(txBuffer_reg));     if (status < 0)    {       System_printf("Error: Unable to send out the data [%d] on UART-3 [Error %d]\n",i, status);       return ;    }

memset ((void *)&rxBuffer_Reg, 0, 1); if(i== 0 ){    if( txBuffer_reg == 0x2E)   {            UART_close(gMmwMCB.commandUartHandle);            UART_Params_init(&uartParams);            uartParams.clockFrequency = gMmwMCB.cfg.platformCfg.sysClockFrequency;            uartParams.baudRate = gMmwMCB.cfg.platformCfg.commandBaudRate;            uartParams.readEcho = UART_ECHO_OFF;            uartParams.isPinMuxDone = 1;           uartParams.parityType = UART_PAR_EVEN ;//校验位为偶           gMmwMCB.commandUartHandle = UART_open(0, &uartParams);           if (gMmwMCB.commandUartHandle == NULL)           {               System_printf("Error: Unable to open the Command UART Instance\n");              MmwDemo_debugAssert (0);             return;            }  }   else  {      break;  }  }

else  { ;  }

赞(0)
未经允许不得转载:TI中文支持网 » iwr6843 串口发送
分享到: 更多 (0)