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

📄 ffuart_method.c

📁 ARM嵌入式系统关于触摸屏问题基于c语言实验代码
💻 C
字号:
typedef unsigned long	ulong;
#define FFUART_BASE        0x40100000
#define FFRBR	         (*((volatile ulong *)(FFUART_BASE+0x00)))
#define FFTHR              (*((volatile ulong *)(FFUART_BASE+0x00)))
#define FFIER          	(*((volatile ulong *)(FFUART_BASE+0x04)))
#define FFIIR          	(*((volatile ulong *)(FFUART_BASE+0x08)))
#define FFFCR          	(*((volatile ulong *)(FFUART_BASE+0x08)))
#define FFLCR          	(*((volatile ulong *)(FFUART_BASE+0x0C)))
#define FFMCR          	(*((volatile ulong *)(FFUART_BASE+0x10)))
#define FFLSR          	(*((volatile ulong *)(FFUART_BASE+0x14)))
#define FFMSR          	(*((volatile ulong *)(FFUART_BASE+0x18)))
#define FFSPR          	(*((volatile ulong *)(FFUART_BASE+0x1C)))
#define FFISR          	(*((volatile ulong *)(FFUART_BASE+0x20)))
#define FFDLL          	(*((volatile ulong *)(FFUART_BASE+0x00)))
#define FFDLH          	(*((volatile ulong *)(FFUART_BASE+0x04)))
#define GPDR1              (*((volatile ulong *)(0x40E00010)))
#define GAFR1_L            (*((volatile ulong *)(0x40E0005C)))


void SerialInit(void){

   GPDR1 = 0x80;
   GAFR1_L = 0x8010;
  
   
   FFLCR = 0x00000003;
   
   FFFCR = 0x00000007;

   FFIER = 0x00000040; 

   FFMCR  = 0x08;  
////

   FFLCR |= 0x00000080;
 
   FFDLL = 0x8;  
   FFLCR &= 0xFFFFFF7F;

   
   while(! FFLSR & 0x00000040 );

   return;
}


void SerialOutputByte(const char c){

	
	while ((FFLSR & 0x00000020) == 0 );

	FFTHR = ((ulong)c & 0xFF);

	if (c=='\n') SerialOutputByte('\r');
}


void SerialOutputString(char * str)
{
   int i=0;
   while(*(str+i)!='\0')
     {
        SerialOutputByte(*(str+i));
        i++;
     }


}



int SerialInputByte(char *c){


	if((FFLSR & 0x00000001)==0){
		return 0;
	} else {

		*c = FFRBR;
		return 1;
	}
}


long int zhishu(int di, int mi)
{
   int i=0;
   long int result=1;
   
   if (mi==0)
      {
        return result;
      }
   else 
      {
        for(i=0; i<mi; i++)
           result *= di;
      }

   return result;
}



void print_num(int value)
{ 
  int i=0, value_temp=value;
  char lenth=0;
  long int module=0;
  char single_num=0;
  
  while(value_temp)
   {
     lenth++;
      value_temp /= 10;
   }

  value_temp = value;

  for(i=0; i<lenth; i++)
   {
     module = zhishu(10, lenth-i-1);
     single_num = value_temp / module;
     single_num += 0x30;
     SerialOutputByte(single_num);     

     value_temp %= module;

   }  
}


void print_string(char * str1)
{
   SerialOutputString(str1);


}

⌨️ 快捷键说明

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