完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
想实现的功能是串口1接受数据,串口2将数据发送出去 帮小弟看下程序i吧谢谢 #include #include #include #include #include #include #define uint unsigned int #define uchar unsigned char uint i,t,num1; uchar j; //1602设置 void UART_init(void); void Receive(void); void Write_str( uchar *p ); int COM_datdeal(void); double Result_Calculate(); //串口设置 uchar rcv_dat[11]; //连续输出A通道9字节16进制显示数据 uchar Receive_Bflag = 0; //正在接送标志 //**********************************// // 串口1初始化 // //**********************************// void UART_init(void) { PCON &= 0x7f; //波特率不倍速 SCON = 0x50; //8位数据,可变波特率 AUXR &= 0xbf; //定时器1时钟为Fosc/12,即12T AUXR &= 0xfe; //串口1选择定时器1为波特率发生器 TMOD &= 0x0f; //清除定时器1模式位 TMOD |= 0x20; //设定定时器1为8位自动重装方式 TL1 = 0xFD; //设定定时初值 TH1 = 0xFD; //设定定时器重装值 ET1 = 0; //禁止定时器1中断 TR1 = 1; //启动定时器1 IP = 0X10; //PS = 1;串口1中断为最高优先级中断 ES = 1; //允许串口中断 EA = 1; //开总中断 } //***********************************************// // 串口2初始化 //**********************************************// void Uartinit2(void) [url=]//9600bps@11.0592MHz[/url] { AUXR &= 0xf7; //波特率不倍速 S2CON = 0x50; //8位数据,可变波特率 BRT = 0xDC; //设定独立波特率发生器重装值 AUXR |= 0x04; //独立波特率发生器时钟为Fosc,即1T AUXR |= 0x10; //启动独立波特率发生器 IE2=0x01; //允许串口2中断ES2=1 EA=1; //开总中断 } //************************************************// // 串口2发送数据 // //************************************************// void sendoneByte(uchar c) { uchar temp=0; IE2=0x00;//关闭串口2中断ES=0 S2CON =S2CON&0xFD;//TI=0 S2BUF=c; do { temp=S2CON; temp=temp&0x02; }while(temp==0); S2CON =S2CON&0xFD;//TI=0清零串口发送完成标志 IE2=0x01;//允许串口2中断ES2=1 } void sendString(uchar *aaa) { while(*aaa!=' |