CC3200串口传输过程中能否更改串口波特率

请问串口传输过程中,我可以通过TCP服务器发送串口波特率重置命令,使串口波特率更改吗?我程序中是让两个串口互发数据。

程序如下所示,我发现出现配置波特率之后,两个串口互发数据时,比如串口0发送12345,串口1那边只会接收123,串口0第二次发数据时,串口1接收的数据就是45123,接着串口0每次发送,串口1接收的数据都是45123。

  如果我把波特率重置的这串代码注释掉,两个串口互发数据就没问题。

void
InitTerm()
{
#ifndef NOTERM
MAP_UARTConfigSetExpClk(CONSOLE,MAP_PRCMPeripheralClockGet(CONSOLE_PERIPH),
UART_BAUD_RATE, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE)); //串口0波特率及参数设置
MAP_UARTConfigSetExpClk(CONSOLE_YU,MAP_PRCMPeripheralClockGet(CONSOLE_PERIPH_YU),
UART_BAUD_RATE, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE)); //串口1波特率及参数设置


#endif
__Errorlog = 0;
}

void InitTerm1(unsigned long ulBaud)
{
MAP_UARTConfigSetExpClk(CONSOLE,MAP_PRCMPeripheralClockGet(CONSOLE_PERIPH),
ulBaud, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE)); //串口0波特率及参数设置

__Errorlog = 0;
}

void InitTerm2(unsigned long ulBaud)
{

MAP_UARTConfigSetExpClk(CONSOLE_YU,MAP_PRCMPeripheralClockGet(CONSOLE_PERIPH_YU),
ulBaud, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE)); //串口1波特率及参数设置

__Errorlog = 0;
}

pCh = NULL;
pCh = strstr (ReceiveData, "USART0_BR:");
if(NULL !=pCh)
{
atoi(pCh+10);
InitTerm1(atoi(pCh+10));
}

4 个回复