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

📄 serial.h

📁 一款收款机C源代码!因为是几年前的代码了
💻 H
字号:
/*以下是串口操作所需要的函数原型以及参数说明*/
/* 串口参数中需要用到的所有宏定义*/

	#ifndef	___SERIAL_H___

#define	___SERIAL_H___
	
#define	BRG_48_IDX		0
#define	BRG_96_IDX		1
#define	BRG_192_IDX		2
#define	BRG_384_IDX		3
#define	BRG_576_IDX		4
#define	BRG_1152_IDX	5



/******************************************************************************
*	检查指定端口(port: PORT0-->PORT4)发送缓冲区是否为空
*			0 -- Buffer 为空
*			1 -- Buffer 不为空
******************************************************************************/
byte	CheckSdBufEmpty(byte port);
/******************************************************************************
*	检查指定端口(port: PORT0-->PORT4)的发送缓冲区是否满
*	函数返回:	true -- 满
*				false -- 不满
******************************************************************************/
byte	CheckSdBufFull(byte port);

/******************************************************************************
*	检查指定端口(port: PORT0-->PORT4)接收缓冲区中是否有数据(是否空)
*	函数返回:
*	true -- 缓冲区为空
*	false -- 缓冲区不为空
******************************************************************************/
byte CheckRsBufEmpty(byte port);
/******************************************************************************
*	清除指定端口接收缓冲区中的数据
*	函数返回: NONE
******************************************************************************/
void ClrRsBuf(byte port);

/******************************************************************************
*	清除指定端口发送缓冲区中的数据
*	函数返回: NONE
******************************************************************************/
void ClrSdBuf(byte port);
/******************************************************************************
*	写指定长度(len)的数据(*str)到指定端口(port: PORT0-->PORT4)
*	函数返回: OK/NG
******************************************************************************/
byte Wr_Str_Uart(byte port, const byte *str, byte len);
/******************************************************************************
*	从指定串口(port: PORT0--PORT4)读取指定长度(len)的数据到*str中
*	函数返回: OK/NG -- 成功/失败
******************************************************************************/
byte Uart_ReadStr(byte port, byte *str, byte len);
/******************************************************************************
*直接写一个字节到串口缓冲区,
* port -- PORT0 --> PORT4
* sendByte : 需要发送的字节
* 函数返回: OK/NG  == 成功/失败
******************************************************************************/
byte Uart_WriteByte(byte port, byte sendByte);
/******************************************************************************
* 从指定串口(port : PORT0-->PORT4)读取一个字节到*getByte,
* 如果成功读取,则函数返回OK,否则返回NG(比如超时错误等)
******************************************************************************/
byte Uart_ReadByte(byte port, byte *getByte);
/******************************************************************************
*	上电的时候,对串口进行初使化,包括
*	a)	使物理串口能正常工作,都初使化在UART模式
*	b)	设定物理参数, stop/data length/parity等
*	c)	设定波特率
*	此处需要注意,对于b)和c)的设定,都是根据串口配置端口文件中的内容来进行,所以
*	如果此文件(ser_port[port]....)中数据错误,则不会正常的被初使化
******************************************************************************/
void InitSerial_PwrOn(void);

/******************************************************************************
* 	Describe:  store the receive data to buffer
*	Input	: 
*			:	存放从串口接受到的数据到接收缓冲区中,如果接收缓冲区满,则放弃此次
*			:   接收的数据
*  	out   	:     none
* 			说明: 这里没有关闭中断是因为它在中断里面调用的语句
******************************************************************************/
void	Uart_Data_Store(BYTE	port, byte ch);
/*
	不发送数据,仅仅把它给删除:
*/
void	Uart_Send_Null(byte port);
/*******************************************************************************
* 	Send data to send register according to the send buffer
*	直接把需要发送的字符写到发送寄存器,同时把需要状态标志设定为正在发送
*	2006-9-6 21:14	by ZhengXiaoChun
*******************************************************************************/
void	Uart_Send_Data(byte port);
/*****************************************************
*   Scanner Barcode数据输入 --> 需要进一步优化
*====================================================*/
void	Uart_Scan_Data_Store(byte port, byte ch);
/*******************************************************************************
* 设定串口的Parity,DataLength和Stop Bit
* 指定端口号即可(即PORT0-->PORT4),然后此程序会从端口所对应的信息资料取数据对
* 物理端口进行初使化,也就是说,在调用此函数之前,必须把所需要设定的参数都更新
* 到ser_port[port].parity/data_len/stop_bit中.
******************************************************************************/
byte 	Uart_PortParityDataLenStopSet(byte port);
/*******************************************************************************
* 设定所有串口的所有参数为默认值,包括:
* 串口所连接的设备, 串口的Parity,Stop Bit, Data Length等等
* 在每次All Clear的时候,需要调用此函数对串口设备做初使化,在修改串口设备以及类型
* 以后,调用其它的函数实现设定.
*******************************************************************************/
void	Uart_Port_SettoDft(void);
/*-----------------------------------------------------------------------------
* 根据输入的波特率代号,获取实际的波特率数值(WORD形)
* 波特率代号为: BRG_96_IDX --> BRG_576_IDX
*-----------------------------------------------------------------------------*/
WORD 	Uart_GetBaudRate(byte idx);
/*------------------------------------------------------------------------------
设定指定串口的波特率, port 	: PORT0 -> PORT4) == PORT4 用于在板打印机驱动.
 * 						baud_idx: 波特率的Index No. == 非实际波特率 
						BRG_96_IDX -- BRG_576_IDX
*-----------------------------------------------------------------------------*/
void	Uart_SetBaudRate(char port, char baud_idx);
/*------------------------------------------------------------------------------
 *测试串口是否正常,输入参数PORT0--PORT4
 *此程序不关心所送入参数是否正常,因为不同版本的硬件,串口分配不一样
 *很简单的测试,向端口连续写入1024个字节的0x55aa
*-----------------------------------------------------------------------------*/
void	Test_UartPort(char port_idx);
void	Uart_Transfer(BYTE port);

	#endif				/*endif of ___SERIAL_H___*/

⌨️ 快捷键说明

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