单片机串口问题!
单片机串口问题!用PC发送一个16进制数0-65536之间任意,动态数码管显示,我程序写出来了,可发送数后这样的规律:0--49;1--50;2--51;3--52;.....
单片机串口问题!
用PC发送一个16进制数0-65536之间任意,动态数码管显示,我程序写出来了,可发送数后这样的规律:0--49;1--50;2--51;3--52;......9--58;
还有关于在一个发送数的前面加序号,一同显示,是如何加上去的,?请高手指点!
高手们,如果想用串行中断显示65535以内的数,怎么分开发?需要在程序中写?还是用串口助手分开写? 展开
用PC发送一个16进制数0-65536之间任意,动态数码管显示,我程序写出来了,可发送数后这样的规律:0--49;1--50;2--51;3--52;......9--58;
还有关于在一个发送数的前面加序号,一同显示,是如何加上去的,?请高手指点!
高手们,如果想用串行中断显示65535以内的数,怎么分开发?需要在程序中写?还是用串口助手分开写? 展开
2个回答
展开全部
串口收发一次,仅仅是8位数,即:0~255。
0-65536,你是怎么发送的?
-------------
串口通信,每次传输,只能是 0~255。
不要以为可以传输 0~255,就可以用同样的方法传送 0~65536 了。
这是不可能的。
网上流传的这个题目,实际上是一种误导。
出题的人,应该还是不懂明白串行通信的基本方法,或者就是有意的进行误导。
-------------
把一个字节(0~255)传送成功之后,接着,应该学习的是:多字节的数据传输。
这方面的规则或协议,就是 MODBUS。
一般来说,一组数据应该包括:
1、地址码
2、功能码
3、数据区
4、校验码(常用CRC校验)
利用这种方法,一对多的串口网络通信,或者说是多机通信,都是可以实现的。
通信的内容,也不限于数据,长篇大论的字符串,也都可以。
0-65536,你是怎么发送的?
-------------
串口通信,每次传输,只能是 0~255。
不要以为可以传输 0~255,就可以用同样的方法传送 0~65536 了。
这是不可能的。
网上流传的这个题目,实际上是一种误导。
出题的人,应该还是不懂明白串行通信的基本方法,或者就是有意的进行误导。
-------------
把一个字节(0~255)传送成功之后,接着,应该学习的是:多字节的数据传输。
这方面的规则或协议,就是 MODBUS。
一般来说,一组数据应该包括:
1、地址码
2、功能码
3、数据区
4、校验码(常用CRC校验)
利用这种方法,一对多的串口网络通信,或者说是多机通信,都是可以实现的。
通信的内容,也不限于数据,长篇大论的字符串,也都可以。
追问
他说的发送65535以内的数,是不是就是你所说的一组字符串?比如我把65535分开发:‘6‘,’5‘,’5‘,’3‘,’5‘;这样吧!!高手,我是初学者,你说的MODBUS协议我听过,但着实不懂!我把我写的用私信发给你了,你帮看下,我的目的就是用串口助手输入多少,数码管就显示多少!哪里需要改?
追答
我的目的就是用串口助手输入多少,数码管就显示多少!
--这种思路,只能在 0~255 范围内实现。
--发送这些:‘6‘,’5‘,’-‘,’3‘,’5‘,'4','2',7','9'。。。
--显示出来:65-5354279。。。
--这也是一种方法。
既然,暂时,MODBUS 你还弄不了,提示给你一个简单的办法吧。
比如想要发送 16 位数:38624,16 进制就是:96E0H。
用串口助手,应该发送:09H、16H、2EH、30H。
发送四次,共四个字节。
每个字节的前半部0123,代表这是第几个字节;后半部96E0,才是数据。
接收机,收齐了四个字节,拼凑出来完整的数据,再一次性的显示出来。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询