#ifndef _USART_H
#define _USART_H
#include "sys.h"
#include "string.h"
#include "stdio.h"	
//////////////////////////////////////////////////////////////////////////////////	 
//本程序只供学习使用，未经作者许可，不得用于其它任何用途
//ALIENTEK STM32F429开发板
//串口1初始化		   
//正点原子@ALIENTEK
//技术论坛:www.openedv.csom
//修改日期:2015/6/23
//版本：V1.0
//版权所有，盗版必究。
//Copyright(C) 正点原子 2009-2019
//All rights reserved
//********************************************************************************
//V1.0修改说明 
////////////////////////////////////////////////////////////////////////////////// 	
#define USART_REC_LEN  			2000  	//定义最大接收字节数 200
#define EN_USART1_RX 			1		//使能（1）/禁止（0）串口1接收
	  	
extern u8  USART_RX_BUF[USART_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节.末字节为换行符 

extern u16 USART_RX_STA;       //接收状态标记	
extern u16 USART2_RX_STA;       //接收状态标记
extern u16 USART3_RX_STA;       //接收状态标记

extern UART_HandleTypeDef UART1_Handler;//UART句柄
extern UART_HandleTypeDef UART2_Handler;
extern UART_HandleTypeDef UART3_Handler; 

#define RXBUFFERSIZE   1 //缓存大小
extern u8 USART_RX_BUF[USART_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节.
extern u8 USART2_RX_BUF[USART_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节.
extern u8 aRxBuffer1[RXBUFFERSIZE];//HAL库使用的串口接收缓冲
extern u8 aRxBuffer2[RXBUFFERSIZE];//HAL库使用的串口接收缓冲
extern u8 aRxBuffer3[RXBUFFERSIZE];//HAL库使用的串口接收缓冲	USART3_MAX_RECV_LEN

//如果想串口中断接收，请不要注释以下宏定义
void usart_init1(u32 bound);
void usart_init2(u32 bound);
void usart_init3(u32 bound);

extern u8 RX1_len;

//USART3.H内容
#define USART3_MAX_RECV_LEN		2048					//最大接收缓存字节数
#define USART3_MAX_SEND_LEN		600					//最大发送缓存字节数
#define USART3_RX_EN 			1					//0,不接收;1,接收.

extern u8  USART3_RX_BUF[USART3_MAX_RECV_LEN]; 		//接收缓冲,最大USART3_MAX_RECV_LEN字节
extern u8  USART3_TX_BUF[USART3_MAX_SEND_LEN]; 		//发送缓冲,最大USART3_MAX_SEND_LEN字节

//EM800M_USART.H内容：
#define BUFLEN 10240      //数组缓存大小
typedef struct _UART_BUF
{
    char buf [BUFLEN+1];               
    unsigned int index ;
}UART_BUF;

void Uart2_SendStr(char*SendBuf);
void Uart1_SendStr(char*SendBuf);
void USART2_Send(char *Data,uint16_t Len);
void Clear_Buffer_UART1(void);



#endif
