关于串口通信的问题

myelan 2004-01-07 09:19:28
现在接受端接受十六进制字符比如01 05 00
我是用CSerialPort的类封装,但是只能够发送字符串
如果这样写
char sBuf[] = "010500";
port.Write(sBuf, strlen(sBuf));

是不成功的
应该怎么转换?

在线等!!!!!!!!!!
...全文
11 点赞 收藏 5
写回复
5 条回复
myelan 2004年01月08日
再问我现在传
010500
但是接收端收到“30 31 30 35 30 30 70 ”
每次在接受的时候都多了一个70,如何取掉呢
回复 点赞
myelan 2004年01月08日
我试过了
当时好像不行,楼上的
结果显示为01 05 70
回复 点赞
ppass 2004年01月08日
BOOL fWriteState;
DWORD dwBytesWritten;
//写入数据
char *buf1 = new char[6];
buf1[0] = 4;
buf1[1] = 0x2f;
buf1[2] = 0x59;
buf1[3] = buf1[0]^buf1[1]^buf1[2];
dwBufToWrite = 4;
fWriteState=WriteFile(hPort,buf1,4,&dwBytesWritten,NULL);
return dwBytesWritten;

大家帮我看看这段代码,为什么我怎么都发送,都是fWriteState=1,但返回的dwBytesWritten都是0阿??
回复 点赞
duyhui 2004年01月08日
70肯定是你自己发的,看看在发送的时候有没有多余的东西
回复 点赞
jawibn 2004年01月07日
很简单:
char sBuf[] = {1, 5, 0};
回复 点赞
发动态
发帖子
网络编程
创建于2007-09-28

7880

社区成员

6.4w+

社区内容

VC/MFC 网络编程
社区公告
暂无公告