⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart.h

📁 电力行业必备。有错的地方
💻 H
字号:
#ifndef UART_H
#define UART_H

#include "config.h"
#include "Global.H"

#define  COMM_RX_BUF_SIZE      512                /* Number of characters in Rx ring buffer             */
#define  COMM_TX_BUF_SIZE      128                /* Number of characters in Tx ring buffer             */

// UART驱动用数据结构
typedef struct {
    OS_EVENT  *UsedSem;
    INT32U     RingBufRxCtr;                /* Number of characters in the Rx ring buffer              */
    OS_EVENT  *RingBufRxSem;                /* Pointer to Rx semaphore                                 */
    INT8U     *RingBufRxInPtr;              /* Pointer to where next character will be inserted        */
    INT8U     *RingBufRxOutPtr;             /* Pointer from where next character will be extracted     */
    INT8U      RingBufRx[COMM_RX_BUF_SIZE+1]; /* Ring buffer character storage (Rx)                      */
    OS_EVENT  *RingBufTxSem;                /* Pointer to Tx semaphore                                 */
    INT32U    SendSize;						/* number of bytes of data to be sent */
    INT8U *   pSendBuf;						/* pointer to buffer for data to be sent */
} COMM_RING_BUF;

#define UART_OK				0
#define UART_ERR_CHANNEL	1
#define UART_ERR_TIMEOUT	2
#define UART_ERR_BAUD		3
#define UART_ERR_PARITY		4
#define UART_ERR_STOPBIT	5
#define UART_ERR_CHARLEN	6
#define UART_ERR_RECV		7

#define UART_ENABLE			0x01
#define UART_RX_ENABLE		0x02
#define UART_TX_ENABLE		0x04
#define UART_DISABLE		0x08
#define UART_RX_DISABLE		0x10
#define UART_TX_DISABLE		0x20

#define TX_MAX_FIFO_SIZE	16
#define RX_MAX_FIFO_SIZE	8


void UARTInit( INT8U port );
INT8U UARTConfigure(INT8U ch, INT32U baudRate, INT8U parity, INT8U stopBits, INT8U charLen,INT32U timeout);
INT8U UARTFlowCtrl( INT8U ch, INT8U controlType);
INT8U UARTDevSet(INT8U ch, INT16U baudRate, INT8U parity, INT8U stopBits, INT8U charLen);
void UARTDevControl( INT8U ch, INT16U enable);
void SC28L91_SetBaudRate( INT32U baudrate );
void  SCUART_SetBaudRate( INT32U baudrate );


INT8U UARTDevTx( INT8U* pData, INT32U dataLen, INT32U* sizeSent);
INT8U UARTDevRx( INT8U* pData, INT32U bufSize, INT32U* dataLen);

INT8U UARTDevTx2( INT8U* pData, INT32U dataLen, INT32U* sizeSent);
INT8U UARTDevRx2( INT8U* pData, INT32U bufSize, INT32U* dataLen);

INT8U UARTDevTx3( INT8U* pData, INT32U dataLen, INT32U* sizeSent);
INT8U UARTDevRx3( INT8U* pData, INT32U bufSize, INT32U* dataLen);

INT8U UARTDevTx4( INT8U* pData, INT32U dataLen, INT32U* sizeSent);
INT8U UARTDevRx4( INT8U* pData, INT32U bufSize, INT32U* dataLen);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -