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