116 lines
3.0 KiB
C
116 lines
3.0 KiB
C
|
|
|
|||
|
|
#ifndef __SERIAL_H__
|
|||
|
|
#define __SERIAL_H__
|
|||
|
|
|
|||
|
|
|
|||
|
|
//---------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
#include "config.h"
|
|||
|
|
|
|||
|
|
//---------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
typedef enum
|
|||
|
|
{
|
|||
|
|
B4800 = 4800,
|
|||
|
|
B9600 = 9600,
|
|||
|
|
B14400 = 14400,
|
|||
|
|
B19200 = 19200,
|
|||
|
|
B38400 = 38400,
|
|||
|
|
B57600 = 57600,
|
|||
|
|
B115200 = 115200,
|
|||
|
|
B230400 = 230400,
|
|||
|
|
B460800 = 460800,
|
|||
|
|
B921600 = 921600,
|
|||
|
|
B1000000 = 1000000
|
|||
|
|
|
|||
|
|
}BAUD_TypeDef;
|
|||
|
|
|
|||
|
|
//-----------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
typedef void (*ResvExProc)(u8 dat);
|
|||
|
|
|
|||
|
|
//-----------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
#define USART_FUNC_DEF(usart) \
|
|||
|
|
\
|
|||
|
|
/* <20><>ʼ<EFBFBD><CABC>USART */ \
|
|||
|
|
int InitUsart##usart(BAUD_TypeDef baud, char dat, char parity, char stop); \
|
|||
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */ \
|
|||
|
|
int Usart##usart##SendData(u8 * pDatBuf, int len); \
|
|||
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */ \
|
|||
|
|
int Usart##usart##GetData(u8 * pDat, int expectLen); \
|
|||
|
|
/* <20><><EFBFBD>ս<EFBFBD><D5BD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD> */ \
|
|||
|
|
int Usart##usart##CleanRsBuf(void); \
|
|||
|
|
/* <20>õ<EFBFBD><C3B5>ѽ<EFBFBD><D1BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD> */ \
|
|||
|
|
int Usart##usart##GetRsLen(void); \
|
|||
|
|
/* <20><><EFBFBD>շ<EFBFBD><D5B7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD> */ \
|
|||
|
|
int Usart##usart##CleanSdBuf(void); \
|
|||
|
|
/* <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><D0B3><EFBFBD> */ \
|
|||
|
|
int Usart##usart##GetSdFreeLen(void); \
|
|||
|
|
/* <20><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA> */ \
|
|||
|
|
int IsUsart##usart##SendBufEmpty(void); \
|
|||
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD> */ \
|
|||
|
|
int IsUsart##usart##SendOver(void); \
|
|||
|
|
/* <20>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */ \
|
|||
|
|
void USART##usart##IntProc(void); \
|
|||
|
|
/* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */ \
|
|||
|
|
void RegUsart##usart##ResvExFunc(ResvExProc proc); \
|
|||
|
|
/* ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */ \
|
|||
|
|
int Usart##usart##SendDataSync(u8 * pDatBuf, int len); \
|
|||
|
|
/* ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */ \
|
|||
|
|
int Usart##usart##GetDataSync(u8 * pDat, int expectLen); \
|
|||
|
|
//-----------
|
|||
|
|
|
|||
|
|
//-----------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
#ifdef COMM_USART1
|
|||
|
|
USART_FUNC_DEF(1);
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
//-----------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
#ifdef COMM_USART2
|
|||
|
|
USART_FUNC_DEF(2);
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
//-----------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
#ifdef COMM_USART3
|
|||
|
|
USART_FUNC_DEF(3);
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
//-----------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
#ifdef COMM_USART4
|
|||
|
|
USART_FUNC_DEF(4);
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
//-----------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
|
|||
|
|
#ifdef COMM_USART5
|
|||
|
|
USART_FUNC_DEF(5);
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
//-----------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
|
|||
|
|
#ifdef COMM_USART6
|
|||
|
|
USART_FUNC_DEF(6);
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
//-----------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
typedef int (*InitUsart)(BAUD_TypeDef baud, char dat, char parity, char stop); // <20><>ʼ<EFBFBD><CABC>
|
|||
|
|
typedef int (*UsartSendData)(u8 * pDatBuf, int len); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
typedef int (*UsartGetData)(u8 * pDat, int expectLen); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
typedef int (*UsartCleanRsBuf)(void); // <20><><EFBFBD>ս<EFBFBD><D5BD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
typedef int (*UsartGetRsLen)(void); // <20>õ<EFBFBD><C3B5>ѽ<EFBFBD><D1BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>
|
|||
|
|
typedef int (*UsartGetSdFreeLen)(void); // <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><D0B3><EFBFBD>
|
|||
|
|
typedef int (*UsartCleanSdBuf)(void); // <20><><EFBFBD>շ<EFBFBD><D5B7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
typedef int (*IsUsartSendOver)(void); // <20><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA>
|
|||
|
|
|
|||
|
|
//-----------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
#endif
|