下面的单片机与单片机间的串口通信,如何能发送与接收16位的数据?

2019-07-15 15:51发布

单片机与单片机间的串口通信,如何发送与接收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;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
challenger365
1楼-- · 2019-07-15 19:00
改了好多次都不成功,因为SBUF都是8位的,分两次发,接收也成了问题,要么被覆盖,要么发后没反应。。。如何改,求教!
猎国倾城
2楼-- · 2019-07-15 23:57
分成两部分发送,再合成即可。
challenger365
3楼-- · 2019-07-16 01:47
 精彩回答 2  元偷偷看……
xidada
4楼-- · 2019-07-16 05:24
路过看见,支持一下!顶!顶!顶!
joyphp
5楼-- · 2019-07-16 11:00
challenger365 发表于 2016-7-6 13:27
后面经过反复修改,改成这样子,但只收到一个 个位数。其它都不显示

void send_com(u16 k)               

你这个接收部分的dat1不用左移8位吗?
张全武5
6楼-- · 2019-07-16 14:43
分两次发送8位数据,两次接收完成后进行一下数据整合成16bit

一周热门 更多>