📄 uart.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 + -