标题: 我总结的单片机通过串口接收数据的程序步骤,请大家帮忙看看有没有哪里不对,谢谢 [打印本页]

作者: 明日香    时间: 2020-12-2 20:41
标题: 我总结的单片机通过串口接收数据的程序步骤,请大家帮忙看看有没有哪里不对,谢谢
某传感器通过串口传输数据给单片机

单片机通过串口接收数据,并将数据付给变量data[]

初始化:
void init()  //系统初始化
{
TMOD=0X20;//选择定时器T1,方式2,波特率由PCON寄存器的SMOD决定
TH1=0xfa;//设置波特率为4800
TL1=0xfa;
TR1=1;//定时器1中断开启
SCON=0x50;//       方式1 SCON是串行口1的串行控制寄存器
PCON=0x00;//各工作方式波特率加倍
IP=0X10;
EA=1;
ES=1;
}

//定时器1中断程序:
void UART_1() interrupt 4
{
        int i=0;
        //接收完缓冲数据后RI置1
        if(RI)       //如果RI为1
        {
          RI=0;    //RI置0
        data[i++]=SBUF;  //SBUF里得到的数据存入data[i++]中
        }
}


请大家帮忙看看这两个初始化程序和中断程序对吗?谢谢大家



作者: csmyldl    时间: 2020-12-3 00:02
大概是这个意思,但波特率并未加倍




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1