关于串口通信的问题

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

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

在线等!!!!!!!!!!
...全文
41 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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};

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧