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

📄 uart.h

📁 ucos II操作系统的源代码。程序完整
💻 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 + -