C# and RS-232C串口通信

keconghua 2011-03-07 08:09:21
C# 如何接收 RS-232C串口通信 的数据。
...全文
707 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
keconghua 2011-04-24
  • 打赏
  • 举报
回复
需要加上“\r\n”回车符。
bcc222 2011-03-18
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 keconghua 的回复:]
刚和供应商聊了一下,他们说他的LCR软件,和我们用的第三方软件(串口调试助手)也OK,说他们LCR测试仪是OK的,应该是我的程序问题,难道读取COM口数据还有别的方法,各位高手指点一下。

另我的程序在读别的(如扫描枪,称重器)都是可以取到数据的,就是取LCR时就读到为空
[/Quote]

你说你的程序读别的正常或者是数据正常,说明你程序大概写的是没有问题的。
读取lcr的时候是空,你可以看一下协议,或者是你说的空是内容为Null还是读取过来的字符不正确?设置一下接收的数据类型试试!
jhdxhj 2011-03-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xingyuebuyu 的回复:]
http://www.360doc.com/content/11/0114/10/3705007_86430450.shtml

http://blog.sina.com.cn/s/blog_4a5e327701008880.html

http://libinguest.blog.163.com/blog/static/4534208200811252208704/

http://……
[/Quote]
keconghua 2011-03-18
  • 打赏
  • 举报
回复
刚和供应商聊了一下,他们说他的LCR软件,和我们用的第三方软件(串口调试助手)也OK,说他们LCR测试仪是OK的,应该是我的程序问题,难道读取COM口数据还有别的方法,各位高手指点一下。

另我的程序在读别的(如扫描枪,称重器)都是可以取到数据的,就是取LCR时就读到为空
热情的菜鸟 2011-03-18
  • 打赏
  • 举报
回复
我考,还真没API阿。
keconghua 2011-03-18
  • 打赏
  • 举报
回复
我向LCR测试仪发送:*IDN?指令,用串口调试助手可以得到值:HIOKI,3532,50,V2.03
便我用代码发送后,却得不到数据:
string a = serialPort1.ReadLine();
string[] readArray = serialPort1.ReadExisting().ToString().Replace("\n", string.Empty).Split(new char[] { '\r' });

高手们请指点呀
keconghua 2011-03-18
  • 打赏
  • 举报
回复
供货商也不知道,电话都N次了,他们对这些也一窍不通
要不就不会这么被动了。
热情的菜鸟 2011-03-18
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 keconghua 的回复:]

发现一个问题,用串口调试工具时,输入指令:*IDN?后,需要在后面带两个回车键才可以接收数据,但用C#时即使带了两个回车还是没有反应,还是接收不到数据,晕呀!
[/Quote]

你连通讯协议都没搞明白,怎么写程序。

问厂家把通讯规约要来
keconghua 2011-03-18
  • 打赏
  • 举报
回复
发现一个问题,用串口调试工具时,输入指令:*IDN?后,需要在后面带两个回车键才可以接收数据,但用C#时即使带了两个回车还是没有反应,还是接收不到数据,晕呀!
xiaoqiu1234 2011-03-09
  • 打赏
  • 举报
回复
我以前有写过一个这样的程序,希望对你有用
http://d.download.csdn.net/down/2898062/xiaoqiu1234
simon0041 2011-03-09
  • 打赏
  • 举报
回复
SerialPort 如果需要 有个CRC16 和CRC32.搞定
keconghua 2011-03-09
  • 打赏
  • 举报
回复
我想应该是需要向LCR发送一个指令来响应机器的,这时才去接收LCR发送的数据。
robbish 2011-03-08
  • 打赏
  • 举报
回复
留贴,串口我也用过,05里的是控件是有问题(估计是我的水平问题),容易出现阻塞问题,我是用了一个别人写好的类(03里没有控件时,调用的API)才解决的问题
flowfog 2011-03-08
  • 打赏
  • 举报
回复
问厂家技术人员
_三皮_ 2011-03-08
  • 打赏
  • 举报
回复
是设备主动发送数据吗,如果是,你的程序参数设置要和设备说明书上一致,如果不是你还要发送“读数据”指令
garfieldzf 2011-03-08
  • 打赏
  • 举报
回复
设备没有API吗?
tdtdtdtdtd123 2011-03-08
  • 打赏
  • 举报
回复
用comspy看看
Koala_sea 2011-03-08
  • 打赏
  • 举报
回复
你这个问题,没有太明白。
1.比如你将串口调试工具打开后,无接收数据。波特率、是16进制显示吗?如果以上均设置正确,那么你想与你的设备通讯是需要通讯协议的。
建议你问问设备厂家,通讯协议是什么。我想你应该是发送一条指令给日置 LCR测试仪,然后它才会反馈给你一条数据的。
keconghua 2011-03-08
  • 打赏
  • 举报
回复
不行呀,我用“串口调试助手”设置好了,没有反应,但是用他“日志”提共的软件就可以读到数据,郁闷呀。
加载更多回复(5)

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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