格式:字节数+机号+命令+数据
+机号+命令+数据
+........
+和校验
其中:字节数:为'机号、命令、数据、和校验'总字节数 16进制
机号:00到07 16进制
数据:十进制ascII码
和校验:为'机号、命令、数据、和校验' 数据相加之和 16进制
如若发送00H(机号)+b1H(命令)+30323330(十进制ASCII数据)+01H+b1H+30333330(十进制ASCII)
则转换为:(11H)+00H+b1H+30323330(ASCII)+01H+b1H+30333330(ASCII)+和校验(为00转二进制+B1转二进制+30转二进制+32转二进制+....的所有二进制数相加和.即00000000 +011010001 +00110000 +.......)
但发送的真正格式,即Comm1.WriteCommData()中该怎样写?
要将数据ASCII格式转换为16进制吗?(应该不用了吧)
和校验如何写一个算法(数据不一样,和校验不同,应该写一个函数吧)?
若将EDIT中的十进制转换为十进制ASCII格式有相应函数吗?
我第一次写这种程序,总之感到数据格式特别模糊,一切无从找手。
各位用过spcomm的尽管谈。将spcomm的经验加以总结,谢谢!!
12 个解决方案
#1
up
#2
用数组,DELPHI咱不懂,但是VARIANT 的VT_ARRAY要用的
#3
谢谢redwooddnymph!!!
请各位指点。
请各位指点。
#4
spcomm的例子我见到了,在有关串口的帖子中。
但是根本的问题还是没有解决,还请各位不吝赐教
但是根本的问题还是没有解决,还请各位不吝赐教
#5
大哥哥.姐姐帮忙!!
#6
http://www.csdn.net/expert/topicview1.asp?id=156092
#7
关注
#8
看前面的帖子,格式问题是搞清楚了,我将它们都转换成BYTE类型,然后附给数组。
新的问题又来了。因为接受到的数据长度不固定,当我用动态树组将接收到的数据分配内存,就会报错,其实如果这样不可以的话,我赋一个最大长度的定长数组也能解决,但接下来的更怪了。当单片机发送020130313530...时,01死活就是接收不到,将其他数如30该为01仍然是接收不到,那这是什么原因呢?我想不会是SPCOMM出了问题吧?但是为什么其他的数据都没有问题,偏偏是01呢呢呢???而且,01不想用其他的字符代替,请大家帮忙,只要回复正确,分数不成问题。还望大家相助!!!!!!!
新的问题又来了。因为接受到的数据长度不固定,当我用动态树组将接收到的数据分配内存,就会报错,其实如果这样不可以的话,我赋一个最大长度的定长数组也能解决,但接下来的更怪了。当单片机发送020130313530...时,01死活就是接收不到,将其他数如30该为01仍然是接收不到,那这是什么原因呢?我想不会是SPCOMM出了问题吧?但是为什么其他的数据都没有问题,偏偏是01呢呢呢???而且,01不想用其他的字符代替,请大家帮忙,只要回复正确,分数不成问题。还望大家相助!!!!!!!
#9
haha
没想到DELPHI的论坛人气太旺了,还不容易才一个一个翻到这里。不过,我还喜欢这种方式,顺便看看别人的帖子。
没有办法,只能提前,希望得到关注
没想到DELPHI的论坛人气太旺了,还不容易才一个一个翻到这里。不过,我还喜欢这种方式,顺便看看别人的帖子。
没有办法,只能提前,希望得到关注
#10
真是天下之大,无其不有。原来是单片机没有将信号发送出来,不过,只是0x01没有发送,其他的都没有问题,归根结底,是仿真器出了毛病,你说怪不怪,好了,问题解决了谢谢大家。
#11
单片机?
#12
不用谢
#1
up
#2
用数组,DELPHI咱不懂,但是VARIANT 的VT_ARRAY要用的
#3
谢谢redwooddnymph!!!
请各位指点。
请各位指点。
#4
spcomm的例子我见到了,在有关串口的帖子中。
但是根本的问题还是没有解决,还请各位不吝赐教
但是根本的问题还是没有解决,还请各位不吝赐教
#5
大哥哥.姐姐帮忙!!
#6
http://www.csdn.net/expert/topicview1.asp?id=156092
#7
关注
#8
看前面的帖子,格式问题是搞清楚了,我将它们都转换成BYTE类型,然后附给数组。
新的问题又来了。因为接受到的数据长度不固定,当我用动态树组将接收到的数据分配内存,就会报错,其实如果这样不可以的话,我赋一个最大长度的定长数组也能解决,但接下来的更怪了。当单片机发送020130313530...时,01死活就是接收不到,将其他数如30该为01仍然是接收不到,那这是什么原因呢?我想不会是SPCOMM出了问题吧?但是为什么其他的数据都没有问题,偏偏是01呢呢呢???而且,01不想用其他的字符代替,请大家帮忙,只要回复正确,分数不成问题。还望大家相助!!!!!!!
新的问题又来了。因为接受到的数据长度不固定,当我用动态树组将接收到的数据分配内存,就会报错,其实如果这样不可以的话,我赋一个最大长度的定长数组也能解决,但接下来的更怪了。当单片机发送020130313530...时,01死活就是接收不到,将其他数如30该为01仍然是接收不到,那这是什么原因呢?我想不会是SPCOMM出了问题吧?但是为什么其他的数据都没有问题,偏偏是01呢呢呢???而且,01不想用其他的字符代替,请大家帮忙,只要回复正确,分数不成问题。还望大家相助!!!!!!!
#9
haha
没想到DELPHI的论坛人气太旺了,还不容易才一个一个翻到这里。不过,我还喜欢这种方式,顺便看看别人的帖子。
没有办法,只能提前,希望得到关注
没想到DELPHI的论坛人气太旺了,还不容易才一个一个翻到这里。不过,我还喜欢这种方式,顺便看看别人的帖子。
没有办法,只能提前,希望得到关注
#10
真是天下之大,无其不有。原来是单片机没有将信号发送出来,不过,只是0x01没有发送,其他的都没有问题,归根结底,是仿真器出了毛病,你说怪不怪,好了,问题解决了谢谢大家。
#11
单片机?
#12
不用谢