打印
[应用相关]

串口通信如何能发送与接收16位的数据?

[复制链接]
580|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wenfen|  楼主 | 2019-10-19 09:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机与单片机间的串口通信,如何发送与接收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;
}

使用特权

评论回复
沙发
morrisk| | 2019-10-19 09:13 | 只看该作者

分成两部分发送,再合成即可。

使用特权

评论回复
板凳
kangzj| | 2019-10-19 09:15 | 只看该作者
接收部分的dat1不用左移8位吗?

使用特权

评论回复
地板
wenfen|  楼主 | 2019-10-19 09:19 | 只看该作者
分两次发送8位数据,两次接收完成后进行一下数据整合成16bit

使用特权

评论回复
5
juventus9554| | 2019-10-19 09:22 | 只看该作者
缓存部分怎么处理,不会被覆盖吗?

使用特权

评论回复
6
llljh| | 2019-10-19 09:25 | 只看该作者
这种情况下的怎么设计数据的收发通讯的实现方案的?

使用特权

评论回复
7
pengf| | 2019-10-19 09:27 | 只看该作者
这个必须分成两部分进行数据的接收的。

使用特权

评论回复
8
supernan| | 2019-10-19 09:31 | 只看该作者
UART的数据收发的都是按照字节为单位进行的

使用特权

评论回复
9
xxmmi| | 2019-10-19 09:34 | 只看该作者
SBUF都是8位的,这要分两次发。

使用特权

评论回复
10
chuxh| | 2019-10-19 10:00 | 只看该作者
问题是如何把16位数据分为2个8位的数据

使用特权

评论回复
11
morrisk| | 2019-10-19 10:03 | 只看该作者
第一次让数据对255求模,第二次让数据对255求余。

使用特权

评论回复
12
zyf部长| | 2019-10-19 10:06 | 只看该作者
告诉你,内存的规定都是以8BIT的字节为单位的。比如你说寄存器的地址,某个地址下的存储都是8BIT,所以,不管你数据是多少位,要占据的地址单位都是字节。你发送也是,都是以字节为单位。这根你实际的变量类型无关。

使用特权

评论回复
13
kangzj| | 2019-10-19 10:09 | 只看该作者
数据都要通过两个字节分开操作。。

使用特权

评论回复
14
zwll| | 2019-10-19 10:12 | 只看该作者
实现先传低八位,后传高八位

使用特权

评论回复
15
chuxh| | 2019-10-19 10:16 | 只看该作者
先获取高字节,然后保存在一个16位的变量中,然后左移8位

使用特权

评论回复
16
houcs| | 2019-10-19 10:21 | 只看该作者
分两次发送8位数据,两次接收完成后进行一下数据整合成16bit

使用特权

评论回复
17
xxmmi| | 2019-10-19 10:25 | 只看该作者
分成2个字节发呗

使用特权

评论回复
18
keaibukelian| | 2019-11-14 10:22 | 只看该作者
分成两次呗

使用特权

评论回复
19
heimaojingzhang| | 2019-11-14 10:25 | 只看该作者
当然是分成两次发送

使用特权

评论回复
20
guanjiaer| | 2019-11-14 10:30 | 只看该作者
只能分次发送了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

737

主题

8940

帖子

8

粉丝