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

[复制链接]
2850|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Ⅱ编码主要是方便用调试助手看,你自己可以对命令再编码

 楼主| zwd 发表于 2008-1-28 16:13 | 显示全部楼层

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

xwj 发表于 2008-1-28 16:23 | 显示全部楼层

很基本的命令行解析啊

理清思路后就很简单了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

zwd

33

主题

97

帖子

0

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