?? uart.h
字號:
#ifndef IN_UART
#ifndef true
#define true 1
#endif
#ifndef false
#define false 0
#endif
#define UARTNUM 2 //0軟串口 1第一個硬串口 2第二個硬串口 3擴展的第一個串口 4擴展的第二個
#define DEBUG_CHANNEL 0
#define TOUCH_CHANNEL 0
#define TELE_CHANNEL 1
#define INACSAM_CHANNEL 2
#define RS485A_CHANNEL 3
#define RS485B_CHANNEL 4
uint8 UART_Init(uint8 port);
//1、接口規范
//1.1 設備打開
extern uint8 UART_open( uint8 port, uint32 baudrate, uint8 databit, uint8 checkbit, uint8 stopbit);
/*
輸入:
port串口號0~n
baudrate波特率110,300,600,1200,2400,...,115200bps
databit數據位數目5~8
checkbit校驗位'e','o','n'
stopbit停止位0(1),1(1.5),2(2)
timeout超時時間
返回:
true if 成功打開此串口
false if 打開串口失敗
功能描述:
用指定的屬性(串口速率、奇偶校驗等)打開串口。
如果此串口空閑并且屬性合理則本函數立即返回true;如果串口屬性不合理則返回false;如果屬性合理但是串口已經被其他進程(線程)使用,并且在timeout時間以內串口仍然沒有被釋放則返回false;如果串口已經被使用,但是在timeout時間之內被釋放,則返回true
如果timeout=0,則永久等待,直到串口被釋放。
*/
//1.2 串口關閉
extern uint8 UART_close(uint8 port);
/*
輸入:
port串口號0~n
返回:
true if 成功關閉
false if 關閉失敗
功能描述:
關閉(釋放)串口port。
如果此串口未被打開,返回false;如果此串口已經打開,則關閉之,返回true
*/
//1.3 從串口接收數據
extern uint16 UART_read(uint8 port, uint8 *buffer, uint32 buffersize, uint16 timeout);
/*
輸入:
port串口號0~n
buffer接收數據緩沖區
buffersize接收緩沖區大小
timneout接收超時時間
返回:
<0出錯
=0沒有收到數據
>0收到數據的個數
功能描述:
從串口上接收數據放在緩沖區buffer里,收到的字節數目就是本函數的返回值。
如果串口沒有被打開,或者buffer為空指針,或者buffersize為0,則返回<0;
如果串口已經有收到數據,將收到的數據填入buffer,并立即返回填入buffer的數據個數(字節計),但是最多填入buffersize個。
如果串口還沒有收到數據,則等待接收數據,但最多等待timeout時間,如果仍然沒有收到數據,則返回0;在等待的過程中如果來了數據,則接收他們直到這一包數據結束或者數據個數達到了buffersize,然后返回接收到的數據個數。
參數buffersize的作用是避免在填入buffer時發生溢出。
*/
//1.4 向串口發送數據
extern uint8 UART_write(uint8 port, const uint8 *buffer, uint32 wlen, uint16 timeout);
/*
輸入:
port串口號0~n
buffer發送數據緩沖區
wlen發送的數據個數
timneout接收超時時間
返回:
true if 發送成功
false if 發送失敗
功能描述:
向串口發送數據。
如果此串口未打開,或者buffer為空,或者wlen=0,立即返回false;
否則將buffer[0~wlen-1]發送到串口上,發送完成以后返回true。
*/
//1.5 清除接收緩沖區
extern uint8 UART_flush(uint8 port);
/*
輸入:
port串口號0~n
返回:
true if 成功
false if 失敗
功能描述:
清除串口此前收到的數據。
如果port未打開,返回false;否則清除此串口已經收到的數據,并返回true。
*/
extern void UART_exception_0(void);
extern void UART_exception_1(void);
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -