zcgw.net
当前位置:首页 >> sEriAlport1.rEAD >>

sEriAlport1.rEAD

用串口调试助手测试下对方是否返回了正确数据。 另外,最好用事件驱动来做,别用 Sleep。

看方法名就应该能猜出来了嘛~ ReadLine 只读一行,而 ReadExisting 读取现有的全部。 假如下位机上送了三行数据,ReadExisting会连回车一起全部返回给你。

问题应该是出在这句: bytesRead = serialPort.Read(BRecieve, 0, bytesToRead); 楼上的说法有点意思,但是不完全透彻。 其实问题在于串口返回数据时,它返回的速度可能不会太快,而程序执行是非常快的。 也就是说,当执行到Read语句时,串口根...

首先是打开串口: serialPort1.PortName = portList.SelectedItem.ToString(); serialPort1.BaudRate = Convert.ToInt32(baudrateList.SelectedItem.ToString()); serialPort1.StopBits = StopBits.One; serialPort1.Parity = Parity.None; seri...

就是一直等待,其实-1跟TimeOut.Infinite是等价的,代码中尽量用TimeOut.Infinite,可读性更强。 具体可参考MSDN: https://msdn.microsoft.com/zh-cn/library/system.threading.timeout.infinite.aspx

请在 string message = serialPort1.ReadLine();这行下一个断点,查看 serialPort1 对象的值是多少

由于串口在不断的接收数据,DataReceived事件在不断的触发,所以数据处理放到委托里面,DataReceived只做数据接收,假如你把数据处理放在DataReceived事件中,可能会影响到数据的接收。 如果你对委托不太了解,可以查阅MSDN文档:http://msdn.mi...

不会 是 参考 人家的 程序吧 变量 S 再哪里 定义? 把 这个 Private s As String 加 Public Class Form1 之后 试试 Ok了,我 调试过

你代码的只有向外的发送,并没有向本机COM1口发送数据的过程吧。 你的串口线是否本机与另一个机器相连,如果这样的话,在另一台机器上打开串口并发送数据,本机再接收就OK了 如果想一台机器做实验的话,可以下载个虚拟串口,模拟2个COM口的链接。

你 程序有问题,加 private void Form1_Load(object sender, EventArgs e) { foreach (string str in SerialPort.GetPortNames()) { comboBox1.Items.Add(str); } } 试试,当然 comboBox1_SelectedIndexChanged 里 就得 除去 相关的语句 再 调试...

网站首页 | 网站地图
All rights reserved Powered by www.zcgw.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com