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

📄 serial.h

📁 RT-Thread是发展中的下一代微内核嵌入式实时操作系统
💻 H
字号:
#ifndef __SERIAL_H__
#define __SERIAL_H__

#include <rtthread.h>
#include <rthw.h>

/*data bits len*/
#define UART_DATABITS_5    0x00
#define UART_DATABITS_6    0x40
#define UART_DATABITS_7    0x80
#define UART_DATABITS_8    0xC0

/*parity type*/
#define UART_PARITY_EVEN   0x000
#define UART_PARITY_ODD    0x200
#define UART_PARITY_SPACE  0x400  /*force to 0(space)*/
#define UART_PARITY_MARK   0x600  /*force to 1(mark)*/
#define UART_PARITY_NONE   0x800  /*no parity*/
#define UART_PARITY_MULTI  0xC00  /*Multi-drop mode*/

/*number of stop bits*/
#define UART_STOPBITS_1    0x0000
#define UART_STOPBITS_15   0x1000
#define UART_STOPBITS_2    0x2000

typedef enum UARTPPortNum_E
{
	UART_DBG=0,
	UART_1  =1, 
	UART_2  =2,
	UART_3  =3,
	UART_4  =4,

	UART_MAXNum,  /*9200 support 4 UART, including one dbg port*/
}UARTPortNum_E;

typedef enum DataBits_E
{
	DataBits_Reserved=0,  /*not inited*/
	DataBits_5,
	DataBits_6,
	DataBits_7,
	DataBits_8,
}DataBits_E;

typedef enum Parity_E
{
	Parity_Reserved=0,  /*not inited*/
	Parity_Even,
	Parity_Odd, 
	Parity_Space, 
	Parity_Mark,
	Parity_None, 
	Parity_Multi, 
}Parity_E;

typedef enum StopBits_E
{
	StopBits_Reserved=0,  /*not inited*/
	StopBits_1,
	StopBits_15, 
	StopBits_2, 
}StopBits_E;

typedef struct UARTPort_T
{
	UARTPortNum_E Port;
	rt_int8_t       Name[8];
	rt_uint32_t     bInited;

	rt_sem_t      Sem;
	rt_uint32_t     BaseAddr;  /*specified UART reg base addr*/
	rt_uint32_t     Vector;

	DataBits_E    DataBits;
	Parity_E      Parity;
	StopBits_E    StopBits;
	rt_uint32_t     BaudRate;

	/*temporally i only use those element, also can use FIFO to fullfil the more feature*/
}UARTPort_T;

void rt_console_puts(const char* str);

#endif  /*__SERIAL_H__'s end*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -