[MCU] 发送与接收16位的数据

[复制链接]
1383|19
 楼主| juventus9554 发表于 2020-5-9 20:20 | 显示全部楼层 |阅读模式

单片机与单片机间的串口通信,如何发送与接收16位的数据?
哪位大吓指点一下。下面是STC单片机程序。。。

void send_com(u8 k)   //发送的数据长度为2^8-1=255
{
S2BUF=k;
while(!(S2CON&S2TI));
S2CON&=~S2TI;
}

u8 Recv_com(void)   //发送的数据长度为2^8-1=255
{
u8 dat;
while(!(S2CON&S2RI));
S2CON&=~S2RI;
return S2BUF;
}
pangb 发表于 2020-5-9 20:26 | 显示全部楼层
分成两部分发送,再合成即可。
zyf部长 发表于 2020-5-9 20:26 | 显示全部楼层
接收部分的dat1不用左移8位吗?
hanwe 发表于 2020-5-9 20:32 | 显示全部楼层

分两次发送8位数据,两次接收完成后进行一下数据整合成16bit
zhuww 发表于 2020-5-9 20:35 | 显示全部楼层
缓存部分怎么处理,不会被覆盖吗
bqyj 发表于 2020-5-9 20:38 | 显示全部楼层
这是要查询的哈
songqian17 发表于 2020-5-9 20:41 | 显示全部楼层
这种情况下的怎么设计数据的收发通讯的实现方案的?
chuxh 发表于 2020-5-9 20:44 | 显示全部楼层
这个必须分成两部分进行数据的接收的
dingy 发表于 2020-5-9 20:49 | 显示全部楼层

UARt的数据收发的都是按照字节为单位进行的
yinxiangh 发表于 2020-5-9 20:52 | 显示全部楼层
分两次发送
ousj 发表于 2020-5-9 20:54 | 显示全部楼层
SBUF都是8位的,分两次发
xxmmi 发表于 2020-5-9 20:59 | 显示全部楼层
分成两部分发送,再合成即可。
kangzj 发表于 2020-5-9 21:05 | 显示全部楼层
问题是如何把16位数据分为2个8位的数据
hanwe 发表于 2020-5-9 21:10 | 显示全部楼层
在8位单片机中没有16位数的操作指令
zhuww 发表于 2020-5-9 21:15 | 显示全部楼层
第一次让数据对255求模,第二次让数据对255求余
zhuhuis 发表于 2020-5-9 21:17 | 显示全部楼层
数据都要通过两个字节分开操作
chuxh 发表于 2020-5-9 21:21 | 显示全部楼层
实现先传低八位,后传高八位
pengf 发表于 2020-5-9 21:26 | 显示全部楼层
先获取高字节,然后保存在一个16位的变量中,然后左移8位
renyaq 发表于 2020-5-9 21:31 | 显示全部楼层

分两次发送8位数据,两次接收完成后进行一下数据整合成16bit
 楼主| juventus9554 发表于 2020-5-9 21:37 | 显示全部楼层

哦,那我就知道怎么回事了,多谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

900

主题

12190

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部