main.c

来自「三星 ARM2410UART的通信实验程序」· C语言 代码 · 共 102 行

C
102
字号
/*=============================================================================
--------------------------------- Copy Left -----------------------------------
						Illidan Fly's Project
						Power by BigFly Network
						http://bigfly.happybobby.com
						
						Released under GPL2 License

----------------------------- File Description --------------------------------
 Filename:	main.c
 Date:		2007.01.02
 Version:	0.0.7
 Description:

----------------------------- Version History ---------------------------------
 0.0.1: First release

=============================================================================*/

#include "2410addr.h"
#include "target.h"
#include "2410lib.h"

int UartNum=0;//重新定义的uart端口号变量
void Getch(void) //往uart接收缓存区中发送字符
{
	if(UartNum==0)
	{	   
		while(!(rUTRSTAT0 & 0x1)); //Receive data ready
		
	}
	else if(UartNum==1)
	{	   
		while(!(rUTRSTAT1 & 0x1)); //Receive data ready
		
	}
	else if(UartNum==2)
	{
		while(!(rUTRSTAT2 & 0x1)); //Receive data ready
		
	}

}

char change(void)//转换
{
	char temp=RdURXH0();
	if(temp!='\n')
	temp = temp-20h;
	return temp;
}

void print(char ch)
{
	if(UartNum==0)
    {
     if(ch=='\n')//当此次发送的数据是'\n'(换行,即本次发送数据的结束时),
     {
       while(!(rUTRSTAT0&0x2));
       Delay(10);
        WrUTXH0('\r');//判断串口是否空闲,rUTRSTAT0 (应该是串口状态寄存
                              //器)若是空闲,则WrUTXH0('\r');发送换行符,结束本次发送。

      }
      while(!(rUTRSTAT0&0x2));
         Delay(10);
       WrUTXH0(ch);
   }

 else
    {
        if(ch=='\n')
     {
       while(!(rUTRSTAT1&0x2));
       WrUTXH1('\r');
      }
      while(!(rUTRSTAT1&0x2));
         Delay(10);
       WrUTXH1(ch);
    }
}

void main(void)
{
	
	char temp;
	
	// Init target board (call this function before anything can go!)
	Target_Init();
	
	Uart_Printf("CITK2410 Uart demo using Uart 0.\n");

	while(temp!='\n')
	{
		Getch();
		temp=change();
		
		print(temp);
		
	}
}

⌨️ 快捷键说明

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