1.请问下面的flowControlThreshold 是什么意思?idleTimeout 是什么意思?
intEnable 设为FALSE是不是就是查询的方式了?
uartConfig.configured = TRUE;
uartConfig.baudRate = HAL_UART_BR_4800;//HAL_UART_BR_9600;
uartConfig.flowControl = FALSE;
uartConfig.flowControlThreshold = 0;
uartConfig.rx.maxBufSize = 128;//默认128;
uartConfig.tx.maxBufSize = 128;//默认128;
uartConfig.idleTimeout = 6;//默认6
uartConfig.intEnable = FALSE;
uartConfig.callBackFunc = uartRxCb;
HalUARTOpen (HAL_UART_PORT_0, &uartConfig);
2.串口处理函数能否用下面的方式?
方式1测了没啥问题,我这边串口只接收,40ms一帧数据,发现用下面方式2的时候会偶现死机现象
方式1这样的方式可行?方式2为什么会死机
我的处理是把缓存里的数据取出来再发出去,发现方式2有的时候发不出去
方式1:
void uartRxCb( uint8 port, uint8 event )
{
HalUARTRead(port,UartDataBuf,128); //把数据接收放到buf中
}
方式2
void uartRxCb( uint8 port, uint8 event )
{
while(Hal_UART_RxBufLen(port))
{
HalUARTRead(port,&UartDataBuf[Head++],1); //把数据接收放到buf中
}
}