uart0.c

来自「rs485的通信程序的主程序。采用at91sam7a3芯片编写的。」· C语言 代码 · 共 101 行

C
101
字号

#include "at91sam7a3.h"

		unsigned char	UART0_RData[522] ;
		unsigned char	UART1_RHR ;

		unsigned char	UART0_TData[1050] ;

		unsigned int	UART0_R_Count ;
		unsigned int	UART1_R_Count ;

		unsigned int 	USART0_NO;

		unsigned long	UART0_TS_Flag ;
		unsigned int	UART0_T_Count ;
		unsigned long	UART0_TE_Flag ;

		unsigned long	UART0_RE_Flag ;
		unsigned long	UART1_RE_Flag ;

		int				UART0_Reciev(void) ;
		int				UART1_Reciev(void) ;
		int				UART0_Transmit(void) ;
		unsigned long US1_flag;
		unsigned char	 ClerRXRDY;
//extern  unsigned int	InData_Count ;


int UART0_Reciev(void)	
{
	AT91S_USART *pUS0;

	pUS0 = AT91C_BASE_US0;	//0xFFFC0000;

	
	if(pUS0->US_RHR == 0x00000053)
	{
		UART0_R_Count=0;	//char_S
	}

	UART0_RData[UART0_R_Count] = pUS0->US_RHR;
	UART0_R_Count++;

	if(pUS0->US_RHR == 0x00000051)   //char_Q
	{
		USART0_NO = UART0_R_Count;
		UART0_R_Count=0;
		UART0_RE_Flag = 0x55555555;
	}
  
	return 1;	
}


int UART0_Transmit(void)	
{
	AT91S_USART *pUS0;

	UART0_T_Count++;
	pUS0->US_THR = UART0_TData[UART0_T_Count];
	if (UART0_TData[UART0_T_Count]==0x51) 
	{
	   UART0_TS_Flag = 0xaaaaaaaa ;
	   UART0_T_Count=0x00000000;
	 }
  
   return 1;	
}


int UART1_Reciev(void)	
{
	AT91S_USART *pUS1,*pUS0;

	unsigned char	a,b,i;

	pUS0 = AT91C_BASE_US0;
	pUS1 = AT91C_BASE_US1;

	if ((pUS1->US_CSR & 0x0000002) == 0x0000002)
	{
		UART1_RHR = pUS1->US_RHR;

		a = UART1_RHR;
		b = UART1_RHR;

		a = a & 0x0F;
		b = b >> 4;
		b = b & 0x0F;

		pUS0->US_THR = b;	//Z_Data[j];
		for (i=0;i<200;i++) ;
		pUS0->US_THR = a;	//Z_Data[j];
		for (i=0;i<200;i++) ;
	
	}
  
	return 1;	
}

				

⌨️ 快捷键说明

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