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

[复制链接]
1037|25
 楼主| houcs 发表于 2020-8-28 22:24 | 显示全部楼层 |阅读模式
单片机与单片机间的串口通信,如何发送与接收16位的数据?
 楼主| houcs 发表于 2020-8-28 22:28 | 显示全部楼层
单片机程序。。。

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;
}
ousj 发表于 2020-8-28 22:31 | 显示全部楼层
SBUF都是8位的,分两次发,接收也成了问题
guoyt 发表于 2020-8-28 22:37 | 显示全部楼层
分成两部分发送,再合成即可。
wangzsa 发表于 2020-8-28 22:42 | 显示全部楼层
你这个接收部分的dat1不用左移8位吗?
bqyj 发表于 2020-8-28 22:46 | 显示全部楼层
分两次发送8位数据,两次接收完成后进行一下数据整合成16bit
juventus9554 发表于 2020-8-28 22:51 | 显示全部楼层
分两次发啊
renyaq 发表于 2020-8-28 22:56 | 显示全部楼层
通信速率多大呢
chenjunt 发表于 2020-8-28 23:05 | 显示全部楼层
使用判断开头吧。
guoyt 发表于 2020-8-28 23:10 | 显示全部楼层
你使用时什么芯片呢?
zhanglli 发表于 2020-8-28 23:13 | 显示全部楼层
只能通过定时器自己编写了。
tian111 发表于 2020-8-28 23:17 | 显示全部楼层
位的数据都要分成两个字节分别读取
renyaq 发表于 2020-9-1 19:16 | 显示全部楼层
向串口发送连续两个数据
xxrs 发表于 2020-9-1 19:22 | 显示全部楼层
应该是接收后处理的方法
xxmmi 发表于 2020-9-1 19:25 | 显示全部楼层
传递两次 然后组合在一起就行了
zhuww 发表于 2020-9-1 19:29 | 显示全部楼层
写入到RAM中去再进行计算
chenho 发表于 2020-9-1 19:33 | 显示全部楼层
约定好通信的格式吧。
xxrs 发表于 2020-9-1 19:38 | 显示全部楼层
定时器可以编写16位的通信。
pangb 发表于 2020-9-1 19:42 | 显示全部楼层
能不能判断开头结尾呢?
llia 发表于 2020-9-1 19:45 | 显示全部楼层
分批发送,然后合成吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

743

主题

8382

帖子

5

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