/* ********************************************************************************************************* * 函 数 名: comGetChar * 功能说明: 从串口缓冲区读取1字节,非阻塞。无论有无数据均立即返回 * 形 参: _ucPort: 端口号(COM1 - COM6) * _pByte: 接收到的数据存放在这个地址 * 返 回 值: 0 表示无数据, 1 表示读取到有效字节 ********************************************************************************************************* */ uint8_t ComGet(COM_PORT_E _ucPort, uint8_t *_pByte) { UART_T *pUart; uint8_t Exist; pUart=ComToUart(_ucPort); Exist=UartGetChar(pUart,_pByte); return Exist; }
/* ********************************************************************************************************* * 函 数 名: comGetChar * 功能说明: 从串口缓冲区读取1字节,非阻塞。无论有无数据均立即返回 * 形 参: _ucPort: 端口号(COM1 - COM6) * _pByte: 接收到的数据存放在这个地址 * 返 回 值: 0 表示无数据, 1 表示读取到有效字节 ********************************************************************************************************* */ uint8_t comGetChar(COM_PORT_E _ucPort, uint8_t *_pByte) { UART_T *pUart; pUart = ComToUart(_ucPort); if (pUart == 0) { return 0; } return UartGetChar(pUart, _pByte); }
/* ********************************************************************************************************* * 函 数 名: comClearRxFifo * 功能说明: 清零串口接收缓冲区 * 形 参: _ucPort: 端口号(COM1 - COM6) * 返 回 值: 无 ********************************************************************************************************* */ void comClearRxFifo(COM_PORT_E _ucPort) { UART_T *pUart; pUart = ComToUart(_ucPort); if (pUart == 0) { return; } pUart->usRxWrite = 0; pUart->usRxRead = 0; pUart->usRxCount = 0; }
/* ********************************************************************************************************* * 函 数 名: comClearTxFifo * 功能说明: 清零串口发送缓冲区 * 形 参: _ucPort: 端口号(COM1 - COM6) * 返 回 值: 无 ********************************************************************************************************* */ void comClearTxFifo(UART_PORT _ucPort) { UART_T *pUart; pUart = ComToUart(_ucPort); if (pUart == 0) { return; } pUart->usTxWrite = 0; pUart->usTxRead = 0; pUart->usTxCount = 0; }
/* ********************************************************************************************************* * 函 数 名: comSendBuf * 功能说明: 向串口发送一组数据。数据放到发送缓冲区后立即返回,由中断服务程序在后台完成发送 * 形 参: _ucPort: 端口号(COM1 - COM6) * _ucaBuf: 待发送的数据缓冲区 * _usLen : 数据长度 * 返 回 值: 无 ********************************************************************************************************* */ void comSendBuf(COM_PORT_E _ucPort, uint8_t *_ucaBuf, uint16_t _usLen) { UART_T *pUart; pUart = ComToUart(_ucPort); if (pUart == 0) { return; } if (pUart->SendBefor != 0) { pUart->SendBefor(); /* 如果是RS485通信,可以在这个函数中将RS485设置为发送模式 */ } UartSend(pUart, _ucaBuf, _usLen); }
/* ********************************************************************************************************* * 函 数 名: ComSend * 功能说明: 向COM口发送一组数据。数据放到发送缓冲区后立即返回,由中断服务程序在后台完成发送 * 形 参: COM_PORT_E : COM号,_ucaBuf:发送的数据指针,_usLen发送数据长度 * 返 回 值: 1表示发送缓存已满,0表示发送缓存未满,返回0xFF表示不存在的串口 ********************************************************************************************************* */ uint8_t ComSend(COM_PORT_E _ucPort, uint8_t *_ucaBuf, uint16_t _usLen) { UART_T *pUart; uint8_t _ucFull; uint16_t i; pUart=ComToUart(_ucPort); if (pUart == 0) { return 0xFF; } for(i=0;i<_usLen;i++) { _ucFull=UartPutChar(pUart,_ucaBuf[i]); if(_ucFull) { return 1; } } return 0; }