向串口发送“换行”和“回车”的问题?

gioc 2005-07-13 12:34:01
我用的串口控件为victor(但我觉得和用什么控件没多大关系)。

我的应用是向串口发送一串字符后,必须紧跟着发送“换行”和“回车”,下位机识别后,返回给串口一些信息。
我试过:
1、YbCommDevice1->Write("12345678\r\n",10);
2.AnsiString s;
char a[2]={0x0a,0x0d};
YbCommDevice1->Write(s.c_str(),s.Length());
YbCommDevice1->Write(a,2);

这俩种办法都不行!
请问到底该怎么办,是哪里的问题?


...全文
4625 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyz16 2006-04-22
  • 打赏
  • 举报
回复
monkeydl 2005-07-23
  • 打赏
  • 举报
回复
串口应该有一个terminalcharacter的属性的,我用labview编串口是有这个问题,如果遇到0d0a,读函数就认为是数据的结尾,就部在读了。楼主还是要看下位机收到的是什么,或者用串口调试器调一下,就知道问题的所在了。
JedyWoody 2005-07-18
  • 打赏
  • 举报
回复
我用victor的控件时没有这个问题,你参考以下 jiangban(太阳晒过的味) 的建议吧
tfwow 2005-07-17
  • 打赏
  • 举报
回复
没有用过控件来向串口收发过数据,我向串口发送16进制数据就是直接用WriteFile函数写的,
Byte data[]={0xa,0xd};
WriteFile(hComm,...); //今天在网吧玩,WriteFile这个函数有点记不准确了,不好意思

用API直接操作串口其实不是很难,网上有很多的资料,你查查就会很快搞定的!
FengSC 2005-07-16
  • 打赏
  • 举报
回复
看看你的串口是不是软件流控制方式,如果是有可能出现这样的问题。
zhuia 2005-07-16
  • 打赏
  • 举报
回复
没有问题啊,你试试用Victor\Examples\CommMcu里面的例子,那个能发送。YbCommDevice1->WritePackage("12345678\r\d", 10);
linwancai 2005-07-16
  • 打赏
  • 举报
回复
首先确认一下下位机收到的是什么?
然后对症下药!
jiangban 2005-07-15
  • 打赏
  • 举报
回复
YbCommDevice1->Write("12345678\\r\\n",10);
\在""中两条代表一条,这样你试过没有?
setdefault 2005-07-13
  • 打赏
  • 举报
回复
没有碰到过这样的是。victor控件也没有这样的问题。是不是看看别的部分,比如说通讯协议和下位机

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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