找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1938|回复: 1
打印 上一主题 下一主题
收起左侧

我总结的单片机通过串口接收数据的程序步骤,请大家帮忙看看有没有哪里不对,谢谢

[复制链接]
跳转到指定楼层
楼主
ID:796670 发表于 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++]中
        }
}


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


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:235200 发表于 2020-12-3 00:02 | 只看该作者
大概是这个意思,但波特率并未加倍
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表