📄 main.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 + -