社区
C#
帖子详情
SerialPort 的 readLine的时候不能继续往下执行
john_jia
2007-12-28 10:58:48
我在调试的时候SerialPort 的 readLine的时候不能继续往下执行。
在ReadLine的时候停止不动了。
这是为什么呢?
...全文
246
9
打赏
收藏
SerialPort 的 readLine的时候不能继续往下执行
我在调试的时候SerialPort 的 readLine的时候不能继续往下执行。 在ReadLine的时候停止不动了。 这是为什么呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ddwhome
2008-07-11
打赏
举报
回复
我的也一样,如果没有设置超时,程序就会锁死.而且我的DataReceived事件也不会执行.
Lvgdq
2007-12-28
打赏
举报
回复
恩,我正在调试...有问题一起讨论嘛,这方面我菜鸟...最近项目里用到才开始学的。
john_jia
2007-12-28
打赏
举报
回复
你超时的话。把超时时间设置长点
Lvgdq
2007-12-28
打赏
举报
回复
那我也不知道是怎么回事,要不楼主你这样初始化一下。
SerialPort serialPort1= new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
因为我看你的serialPort1里面奇偶效验位这些都没有设置
john_jia
2007-12-28
打赏
举报
回复
没任何提示。
Lvgdq
2007-12-28
打赏
举报
回复
恩,这个程序我也用过。也是在那里卡住的。不过我是抛出的超时异常,所以我估计我是因为串口数据没传过来的原因。如果你是两台机子连上串口进行数据传输的话,我就不知道为什么了...
另外,卡住了程序应该会有提示报错这些吧?
john_jia
2007-12-28
打赏
举报
回复
没提示超时。就是停着不动了。
我目前测试的是字符串的传输。
发送端:
serialPort1.PortName = "COM1";
serialPort1.BaudRate = 9600;
serialPort1.Open();
byte[] data = Encoding.Unicode.GetBytes(textBox1.Text);
string str = Convert.ToBase64String(data);
serialPort1.WriteLine(str);
serialPort1.WriteLine("");
MessageBox.Show("数据发送成功!", "系统提示");
serialPort1.Close();
接收端:
private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(S));
t.Start();
}
private void S()
{
try
{
serialPort1.PortName = "COM1";
serialPort1.BaudRate = 9600;
serialPort1.Open();
byte[] data = Convert.FromBase64String(serialPort1.ReadLine());
textBox1.Text = Encoding.Unicode.GetString(data);
serialPort1.Close();
MessageBox.Show("数据接收成功!", "系统提示");
}
catch (Exception exx)
{
MessageBox.Show(exx.Message);
}
}
但是到readline的时候就没反应了。
Lvgdq
2007-12-28
打赏
举报
回复
是不是提示超时异常?
LZ你读什么样的串口信息?我也遇到了这个问题还没解决...
john_jia
2007-12-28
打赏
举报
回复
不知道为什么我的DataReceived没执行
C#全能速查宝典
1.3.3 continue语句——
继续
执行
下一个循环 31 1.3.4 do…while语句——循环语句 31 1.3.5 for语句——循环语句 32 1.3.6 foreach语句——枚举一个集合的元素 33 1.3.7 goto语句——跳转到标签 34 1.3.8 if…else...
python
serialport
的
执行
readline
()卡死
必须接收到换行符\r\n才算结束,否则一直等待接收
C#上位机串口编程、Modbus编程
C#串口通信是借助一个
SerialPort
类的对象来方便的对串口进行读写。 Modbus是一种串行通信协议,是施耐德电气发表工业标准协议。C# NModbus4库提供了ModbusMaster、ModbusSlave类来实现Modbus...
串口
SerialPort
死锁问题
转载 微软
SerialPort
秘籍,
SerialPort
为什么死锁程序的分析 作者:天涯 来源:中国自学编程网 发布日期:1232178634 既然是秘籍,显然是写一些大家不常找到的,MSDN里遗漏提示大家注意的东西。...
C#利用
SerialPort
控件进行串口编程小记
注意: 1、
ReadLine
()方法一直会读到有一个新的行才会返回,所以如果发送数据中没有换行符则该方法不会返回,会一直停留在
readline
程序里不会
执行
之后的程序,而read()是调用者自己定义一个byte数组来接收串口中...
C#
110,566
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章