串口通信16位的数据发送与接收

[复制链接]
 楼主| Snow7 发表于 2018-6-29 21:39 | 显示全部楼层 |阅读模式

单片机与单片机间的串口通信,如何发送与接收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;
}
android2 发表于 2018-6-29 21:46 | 显示全部楼层
SBUF都是8位的,分两次发,接收也成了问题
拉克丝 发表于 2018-6-29 21:58 | 显示全部楼层
分成两部分发送,再合成即可。
lefeng 发表于 2018-6-29 22:08 | 显示全部楼层
你这个接收部分的dat1不用左移8位吗?
CaLipton 发表于 2018-6-30 15:34 | 显示全部楼层
分两次发送8位数据,两次接收完成后进行一下数据整合成16bit
kkzz 发表于 2018-7-1 14:55 | 显示全部楼层
分两次发啊
hudi008 发表于 2018-7-1 14:55 | 显示全部楼层
通信速率多大呢
lzmm 发表于 2018-7-1 14:56 | 显示全部楼层
使用判断开头吧。
minzisc 发表于 2018-7-1 14:56 | 显示全部楼层
你使用时什么芯片呢?
fentianyou 发表于 2018-7-1 14:56 | 显示全部楼层
只能通过定时器自己编写了。
xiaoyaodz 发表于 2018-7-1 14:57 | 显示全部楼层
位的数据都要分成两个字节分别读取
febgxu 发表于 2018-7-1 14:57 | 显示全部楼层
向串口发送连续两个数据
sdlls 发表于 2018-7-1 14:58 | 显示全部楼层
应该是接收后处理的方法
pixhw 发表于 2018-7-1 14:58 | 显示全部楼层
传递两次 然后组合在一起就行了
xiaoyaodz 发表于 2018-7-1 14:58 | 显示全部楼层
写入到RAM中去再进行计算
kkzz 发表于 2018-7-1 14:58 | 显示全部楼层
约定好通信的格式吧。
fentianyou 发表于 2018-7-1 14:58 | 显示全部楼层
定时器可以编写16位的通信。
hudi008 发表于 2018-7-1 14:58 | 显示全部楼层
能不能判断开头结尾呢?
selongli 发表于 2018-7-1 14:58 | 显示全部楼层
分批发送,然后合成吧。
lzmm 发表于 2018-7-1 14:58 | 显示全部楼层
约定一个三个字符的开始字符串
您需要登录后才可以回帖 登录 | 注册

本版积分规则

173

主题

926

帖子

3

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