打印

探讨:如何实现用串行通讯,更改变量的数值?

[复制链接]
1579|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zwd|  楼主 | 2008-1-27 11:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
去年使用过一款以色列的伺服驱动器,用户可以根据自己的控制要求编写程序,在驱动器正常运行时,可以通过驱动器的串口改变用户程序里用户自己所定义的变量值。
比如:在用户程序中定义了变量m_speed, (unsigned char m_speed) 使用串口发送m_speed = 80;的ASCⅡ编码即可给变量m_speed赋新值80。
我的理解:CPU接收到的m_speed = 80;的ASCⅡ编码实际是十一个字节的一组数6d 95 73 70 65 65 64 3d 38 30 3b。能想到的是先进行比较,前七个字节如果等于6d 95 73 70 65 65 64,把九、十字节38 30解码还原成80再赋值给变量m_speed。感觉是不是太麻烦了。
怎么才能使接收到的ASCⅡ编码能方便的对应到用户程序所定义的变量呢?
正在作的项目,有接近四百个变量需要能够通过串口改变数值,用比较的方式显然不行。恳请各位同行介绍几本相关著作。

相关帖子

沙发
happystar| | 2008-1-27 11:29 | 只看该作者

我感觉靠硬件是不能改变数据的

那么只有靠软件方式了,想问一下要改变的数据是否和原数据有规律吗?
如果有规律则可以通过算法集体改变,这样效率比较高。
没规律的话,我觉得应该只有笨方法来了。

使用特权

评论回复
板凳
zwd|  楼主 | 2008-1-27 11:39 | 只看该作者

happystar:数据没有规律

真不知道那款以色列的驱动器是用什么方法实现的。

使用特权

评论回复
地板
hotpower| | 2008-1-27 12:21 | 只看该作者

ASCⅡ编码主要是方便用调试助手看,你自己可以对命令再编码

使用特权

评论回复
5
zwd|  楼主 | 2008-1-28 16:13 | 只看该作者

唉,后天去图书馆自己去找书

使用特权

评论回复
6
xwj| | 2008-1-28 16:23 | 只看该作者

很基本的命令行解析啊

理清思路后就很简单了

使用特权

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

本版积分规则

zwd

33

主题

97

帖子

0

粉丝