关于STC15的串口通讯问题

2019-07-15 12:02发布

接收发送都不能成功,不知道问题出在哪里了?灯不灭,电动机不动
发送方:
#include<STC15L2K60S2>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar bdata inter_ram[8]={0,1,2,3,4,5,6,7}
sbit P3_4=P3^4;
sbit P3_5=P3^5;
void Delay1ms()
{
        unsigned char i,j;
        _nop_();
        _nop_();
        _nop_();
        i=11;
        j=190;
        do
        {
                while(--j);
        }
        while(--i);
       
}       
void delay(uchar x)
{
        uchar i;
        for(i=0;i<x;i++)
        {
        Delay1ms();       
        }

}
void Uartinit(void)//115200bps@22.1184MHz
{
SCON=0x50;//8位数据可变波特率?
AUXR|=0x40;//定时器1时钟为Fosc,即1T?
AUXR&=0xFE;//串口1选择定时器1为波特率发射生器
TMOD&=0x0F;//设置定时器1为16位自动重装方式
TL1=0xD0;//设定定时初值
TH1=0xFF;//设定定时初值
ET1=0;//禁止定时器1中断
TR1=1;//启动定时器1
}
void Send_Byte(uchar x)
{
        SBUF=x;
        while(TI==0);
        TI=0;
        P3_4=1;//让灯灭
}
void main()
{
        uchar count;
        UartInit(void);
        for(count=0;count<8;count++)
        {
         Send_Byte(inter_ram[count]);
        delay(200);
        }
        while(1);
}


接收方:
#include<STC15L2K60S2>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar data reata[8];
uchar *mydata;
sbit P3_4=P3^4;
sbit P3_5=P3^5;
sbit P3_6=P3^6;
void UartInit(void)//115200bps@22.1184MHz
{
SCON=0x50;//8位数据可变波特率?
AUXR|=0x40;//定时器1时钟为Fosc,即1T?
AUXR&=0xFE;//串口1选择定时器1为波特率发射生器
TMOD&=0x0F;//设置定时器1为16位自动重装方式
TL1=0xD0;//设定定时初值
TH1=0xFF;//设定定时初值
ET1=0;//禁止定时器1中断
REN=1;
TR1=1;//启动定时器1
}

void main()
{
        uchar i;
        UartInit(void);
        mydata=recdata;
        for(i=0;i<8;i++)
        {
         while(RI==0);
         RI=0;
         *mydata=SBUF;
     P3_6=1;
     P3_5=0;//让电动机转动
         mydata++;
         _nop_();
         _nop_();
         _nop_();
        }
        while(1);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。