主题:二进制代码的传输 共有39500人关注过本帖 |
---|
kchmn |
1楼 |
二进制代码的传输 Post By:2005-12-15 16:10:00 [只看该作者]
在文件传输中,接收端要求2个byte共16bit的信号。如何在ETR232中传2进制代码?源程序中只有传char的function.是把每个byte转成ASCII 字符后再传吗??
|
|
单帖管理 | 引用 | 回复 |
zhl |
2楼 |
Post By:2005-12-15 17:57:00 [只看该作者]
如果是指串口通讯的话,直接按照char的方式发送,不要转成ASCII码。char并不是等同于ASCII码。
|
|
单帖管理 | 引用 | 回复 |
kchmn |
3楼 |
Post By:2005-12-16 10:45:00 [只看该作者]
是串口通讯,我说的是ASCII 字符(char),不是码(Number)。如传二进码00110000,先换成48,对应是char"0".
按照char发送是这个意思吗?如果不是,该怎么发?例,想发二进码00000001该怎么发? |
|
单帖管理 | 引用 | 回复 |
zhl |
4楼 |
Post By:2005-12-16 11:03:00 [只看该作者]
如:
char Buf[10]; Buf[0] = 0x48; Buf[1] = 0x01; len = 2; for( i=0; i<len; i++ )     PutOutputData( COM1, Buf[i] ); StartSend( COM3 ); |
|
单帖管理 | 引用 | 回复 |
zhl |
5楼 |
Post By:2005-12-16 11:07:00 [只看该作者]
写错了。是PutOutputData( COM3, Buf[i] );
|
|
单帖管理 | 引用 | 回复 |
kchmn |
6楼 |
Post By:2005-12-16 11:14:00 [只看该作者]
是0x48吗?0x48和48好象不一样啊 。。。
|
|
单帖管理 | 引用 | 回复 |
zhl |
7楼 |
Post By:2005-12-16 12:26:00 [只看该作者]
0x48和48肯定不一样,二进码00110000相当与0x30。上面我是举例说明,你可根据具体情况赋值。
|
|
单帖管理 | 引用 | 回复 |
kchmn |
8楼 |
Post By:2005-12-16 13:02:00 [只看该作者]
好的,谢谢.但是可以直接用Buf[0]=48;来定义吗?
|
|
单帖管理 | 引用 | 回复 |
zhl |
9楼 |
Post By:2005-12-16 14:38:00 [只看该作者]
可以。
|
|
单帖管理 | 引用 | 回复 |