急急急!!!单片机串行通信能否传输0~255之外的数值,好像不够用吧

[复制链接]
2823|14
 楼主| miaodonglin 发表于 2013-5-14 08:30 | 显示全部楼层 |阅读模式
如题目,在用单片机做串行通讯的时候,我们所用的SBUF是单字节的寄存器,这是否意味着我们只能够传输8位,既0~255这些数值,但是我觉得不应该局限性这么大啊,楼主想传输0~600这些范围的数字给PC机,请教各位大神应该怎么做?能不能实现????急急急
ayb_ice 发表于 2013-5-14 08:38 | 显示全部楼层
想都不用想当然可以了,
难道8位机就不能用16位,32数据了
wangyy608 发表于 2013-5-14 08:39 | 显示全部楼层
。。。。。。。。。。。。。
16位拆分成2个8位,PC端再组合
 楼主| miaodonglin 发表于 2013-5-14 08:41 | 显示全部楼层
ayb_ice 发表于 2013-5-14 08:38
想都不用想当然可以了,
难道8位机就不能用16位,32数据了

直接把数值放入SBUF吗?似乎不妥啊
 楼主| miaodonglin 发表于 2013-5-14 08:46 | 显示全部楼层
wangyy608 发表于 2013-5-14 08:39
。。。。。。。。。。。。。
16位拆分成2个8位,PC端再组合

您的意思是分别放入SBuf?我试试
受不了了 发表于 2013-5-14 08:52 | 显示全部楼层
呵呵,楼主应该不要急着写程序,先去看看书吧
ayb_ice 发表于 2013-5-14 08:58 | 显示全部楼层
实话实说,LZ根本还没有通信概念
建议先看书吧
coody 发表于 2013-5-14 09:34 | 显示全部楼层
普通的计算器(非函数计算器)好多是4位机做的,一样可以做到十进制16位计算器。
NE5532 发表于 2013-5-14 12:00 | 显示全部楼层
miaodonglin 发表于 2013-5-14 08:41
直接把数值放入SBUF吗?似乎不妥啊

楼主,你只有10根手指头,是怎么数到100的呢?
andyding 发表于 2013-5-14 12:44 | 显示全部楼层
楼上回答的经典哈
lcdi 发表于 2013-5-14 15:25 | 显示全部楼层
嘿嘿,问问楼主,串行通讯只能传1位啊,你怎么传8位的?
既然你能传8位过去,那就不能接着传,传2次就16位都过去了吧?
既然8位可以表示到255,那么16位能表示多少?

其实,这就是把数据按位拆分,传送,然后按位组合回去。如果还不清楚就看看资料,C语言里怎么表示那些数据类型,又是怎么存储那些数据类型的。

lhbzqh 发表于 2013-5-14 15:49 | 显示全部楼层
给楼主再出一个题,如何传1.23456789 这个小数呢?
这个搞清楚了,基本就不会再有这方面的问题了。
fythlhan 发表于 2013-5-14 16:23 | 显示全部楼层
9楼回答得经典!
hithms 发表于 2013-5-14 19:06 | 显示全部楼层
记得前两天有一位仁兄发帖问的问题差不多:EEPROM能不能存0~255以外的数据。
两个问题一样,呵呵。。。
dongranmengming 发表于 2013-5-23 22:27 | 显示全部楼层
怀疑楼主咋写程序的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

12

帖子

0

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