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

📄 main.c

📁 基于51平台的串口一扩五芯片GM8125的测试程序
💻 C
字号:
/********************************************************************************
* 文件:MAIN.C
* 功能:主函数
* 作者:宋智宁
* 日期:2005.3.8
* 备注:测试串口一扩五芯片GM8125读写
*********************************************************************************/
#include "config.h" 


//区分CPU类型
#ifndef C51_MX   //AT89S52

GM8125BUF SerBuf; //接收缓冲区

/**********************************************************************
;功能:主函数
;说明:
;*********************************************************************/
void main(void)
{	   
  uint8 i=1,buffer[16]="Hello, world\n";

  GM8125_Init(1,57600);
  //GM8125_Send(0,i,buffer,16);
  
  while(1)
  {
 	//GM8125_Rev(&SerBuf,10);
  }
}
 
#else  //P89C669 

/******************数据变量定义*****************/ 
static unsigned char SendBuff[]="XDATA...\n"; //{0x55,0x45,0x67,0xbc,0x00}; 
static unsigned char ReceiveBuff[5]={0x00,0x00,0x00,0x00,0x00}; 

/******************************************************/
/*函数名称: MAIN.C */ 
/*函数功能: 主机主程序 */ 
/*********************************************/ 
void main(void) 
{
  unsigned char dat, c=0;
  unsigned char *datp=&dat,*cp=&c;
  unsigned int i;
//--------------------------------------------
  MXCON |= 0x04; //EAM = 1 允许访问超出64K部分
  AUXR |= 0x02;  //EXTRAM = 1 访问外部数据存储器(关闭片内)

  Uart_Init(uart_num,9600); //uart

  SetMS();//MS=1; //GM8125工作在单通道工作模式下 
  SelectUart(5);  //选择8125子通道5工作

  Uart_Send_Str(uart_num, "Start...\n");  
  Uart_Send_Str(uart_num, "comm");
  Uart_Send_Byte(uart_num, 0x30+(unsigned char)uart_num); //display comm no
  Uart_Send_Str(uart_num, ": 9600bps\n");

  while(1)
  {
    c = Uart_Rev(uart_num);  //wait for cmd

	switch(c) 
    {
      case 0:{
	    Uart_Send_Str(uart_num, "\nCH ");
		Uart_Send_Byte(uart_num, 0x31+c); //display channel no
		Uart_Send_Str(uart_num, ": 1200bps\n");
    	Uart_Init(uart_num,1200);
		SelectUart(1); //选择8125子通道1工作	
		break;
      }
      case 1:{
	    Uart_Send_Str(uart_num, "\nCH ");
		Uart_Send_Byte(uart_num, 0x31+c); //display channel no
		Uart_Send_Str(uart_num, ": 2400bps\n");
		Uart_Init(uart_num,2400);
		SelectUart(2); //选择8125子通道2工作 	
		break; 
     } 
     case 2:{ 
	   Uart_Send_Str(uart_num, "\nCH ");
		Uart_Send_Byte(uart_num, 0x31+c); //display channel no
		Uart_Send_Str(uart_num, ": 4800bps\n");
		Uart_Init(uart_num,4800);
		SelectUart(3);//选择8125子通道3工作 	
		break; 
     } 
     case 3:{ 
	    Uart_Send_Str(uart_num, "\nCH ");
		Uart_Send_Byte(uart_num, 0x31+c); //display channel no
		Uart_Send_Str(uart_num, ": 9600bps\n");
    	Uart_Init(uart_num,9600);
		SelectUart(4); //选择8125子通道4工作 	
		break; 
     } 
     case 4:{ 	
	    Uart_Send_Str(uart_num, "\nCH ");
		Uart_Send_Byte(uart_num, 0x31+c); //display channel no
		Uart_Send_Str(uart_num, ": 19200bps\n");
		Uart_Init(uart_num,19200);
		SelectUart(5); //选择8125子通道5工作  
		break; 
     } 
	 case 10:{  //LCD test
        Uart_Send_Str(uart_num, "Wait for LCD data\n");
		dat = Uart_Rev(uart_num);
		Lcd_Data = dat;
		Uart_Send_Str(uart_num, "Wait for LCD Ctrl\n");
		dat = Uart_Rev(uart_num);
		Lcd_Ctrl = dat;
		continue;
	 }
	 case 0xff:{   //change uart port
        Uart_Send_Str(uart_num, "\ncomm");
	    Uart_Send_Byte(uart_num, 0x30+(unsigned char)(~uart_num)); //display comm no 
		Uart_Send_Str(uart_num, "\nCH ");
		Uart_Send_Byte(uart_num, 0x31+3); //display channel no
		Uart_Send_Str(uart_num, ": 9600bps\n");

		uart_num = ~uart_num; //change uart port(0/1)
    	Uart_Init(uart_num,9600);
		SelectUart(4); //选择8125子通道4工作 	    
		continue;
	 } 
     default: break; 
   }      

   /*主控MCU发送/接收程序*/   
   dat = Uart_Rev(uart_num); //wait for cmd

   Uart_Send_Byte(uart_num, dat);
 
  } 
}  
#endif 

⌨️ 快捷键说明

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