找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5289|回复: 3
收起左侧

单片机串口通信如何连续发送接收一串数据?

[复制链接]
ID:756024 发表于 2020-5-21 20:54 来自手机 | 显示全部楼层 |阅读模式
51单片机串口通信如何发送和接收一串数据,如发送接收01110111
回复

使用道具 举报

ID:732506 发表于 2020-5-22 03:02 | 显示全部楼层
如果是发送hex数,可以一次直接写入串口寄存器。如果发送字符串就每一位的数加0x30变为ASCII码分8次发送。
回复

使用道具 举报

ID:213173 发表于 2020-5-22 06:40 | 显示全部楼层
楼主对串口通信发送和接收数据串理解错误。串口每次发送和接收的最小单元是1个字节(8bit),由若干字节组成一帧的数据被称数据串。数据串的长度和每一个字节的含义是按事先的约定编写,这个约定被称作通讯协议。
回复

使用道具 举报

ID:367934 发表于 2020-5-22 09:25 | 显示全部楼层
使用串口收发数据一般的步骤:
1.设置串口初始化参数。
2.编写串口中断函数。
51单片机的串口接收寄存器是SBUF.
接收数据是:
unsigned char  redata;
redata=SBUF;  //接收一位数据
SBUF=redata; //发送一位数据。
接收多位可以通过数组去接收数据。发送多位数据可以使用循环发送。
例发送多位数据:
void sedata(unsigned char *ch,unsigned char num)
{
       int n;
      for(n=0;n<num:n++)
     {
        SBUF=*(ch+n);
      }
}
大概就这样了。

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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