求救高手指点...在F10下可以写出结果,,在F5下就不出来结果了啊...

gaara777 2010-09-20 03:41:04
一个单击时间.
private void button2_Click(object sender, EventArgs e)
{
Thread.Sleep(100);
Transmit();
}
上面调用此方法
public void Transmit()
{
Byte[] Send = new Byte[1];
Send[0] = 0xAA;
serialPort1.Write(Send, 0, 1);
Byte[] SendBy = new Byte[24];
byte Sum = 0;
SendBy[0] = 0x01;
SendBy[3] = 0x07;
for (int i = 0; i < 24; i++)
{
Sum = (byte)(SendBy[i] + Sum);
}
SendBy[23] = Sum;
this.serialPort1.Write(SendBy, 0, 24);
}
private void timer1_Tick(object sender, EventArgs e)
{
label2.Text = System.DateTime.Now.ToString("HH:mm:ss");
byte[] goor = new byte[serialPort1.BytesToRead];
serialPort1.Read(goor, 0, serialPort1.BytesToRead);
string boog = BitConverter.ToString(goor).Trim();
boog = boog.Replace("-", "");
Latestdata(boog);
}
public void Latestdata(string boog)
{
try
{
if (boog.Length > 4)
{
if (boog.Substring(0, 2) == "55")
{
string poor = boog.Substring(4, boog.Length - 4);
if (poor.Substring(18, 2) != "00")
{
poor = poor.Substring(14, 6).ToString();
textBox2.Text = poor;
}
else
{
poor = Convert.ToInt32(poor.Substring(14, 6), 16).ToString;
textBox2.Text = poor;
}
}
else if (boog.Substring(0, 2) == "FE")
{
string poor = boog.Substring(2, boog.Length - 2);
if (poor.Substring(18, 2) != "00")
{
poor = poor.Substring(14, 6).ToString();
textBox2.Text = poor;
}
else
{
poor = Convert.ToInt32(poor.Substring(14, 4), 16).ToString();
textBox2.Text = poor;
}
}
}
}
catch
{
MessageBox.Show("请重新读出数据!","系统提示");
}
}
...全文
125 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaara777 2010-09-20
  • 打赏
  • 举报
回复
可以了啊,,自己搞好了啊。.要多睡下才可以啊..Thread.Sleep(5000);
gaara777 2010-09-20
  • 打赏
  • 举报
回复
不行啊,,高手...那里放一个断点的话就会没有响应啊。...
cactus123456 2010-09-20
  • 打赏
  • 举报
回复
private void timer1_Tick(object sender, EventArgs e)
{
//F5运行前这一行放个断点
label2.Text = System.DateTime.Now.ToString("HH:mm:ss");

你F5运行,button2 按后,会断到断点处,然后再F10运行看看
gaara777 2010-09-20
  • 打赏
  • 举报
回复
嘿嘿,,又是你啊,,怎么称呼...谢谢你啊,,,高手...感觉还是不行啊....
cactus123456 2010-09-20
  • 打赏
  • 举报
回复
想了想timer中的
//===================
while(serialPort1.BytesToRead==0)
{
Thread.Sleep(100);
}
//===================
应该去掉
cactus123456 2010-09-20
  • 打赏
  • 举报
回复
private void button2_Click(object sender, EventArgs e)
{
//=======================
timer1.Interval = 1000;
timer1.enable=false;
//=======================
Thread.Sleep(100);
Transmit();
//=======================
timer1.enable=true;
//=======================
}
cactus123456 2010-09-20
  • 打赏
  • 举报
回复
//===================
中间的代码是我加的,你试试
//===================

public void Transmit()
{
Byte[] Send = new Byte[1];
Send[0] = 0xAA;
serialPort1.Write(Send, 0, 1);
Byte[] SendBy = new Byte[24];
byte Sum = 0;
SendBy[0] = 0x01;
SendBy[3] = 0x07;
for (int i = 0; i < 24; i++)
{
Sum = (byte)(SendBy[i] + Sum);
}
SendBy[23] = Sum;
//====================
Thread.Sleep(100);
//=====================
this.serialPort1.Write(SendBy, 0, 24);
}





private void timer1_Tick(object sender, EventArgs e)
{
label2.Text = System.DateTime.Now.ToString("HH:mm:ss");
//===================
while(serialPort1.BytesToRead==0)
{
Thread.Sleep(100);
}
//===================
byte[] goor = new byte[serialPort1.BytesToRead];
serialPort1.Read(goor, 0, serialPort1.BytesToRead);
string boog = BitConverter.ToString(goor).Trim();
boog = boog.Replace("-", "");
Latestdata(boog);
}
public void Latestdata(string boog)
{
try
{
if (boog.Length > 4)
{
if (boog.Substring(0, 2) == "55")
{
string poor = boog.Substring(4, boog.Length - 4);
if (poor.Substring(18, 2) != "00")
{
poor = poor.Substring(14, 6).ToString();
textBox2.Text = poor;
}
else
{
poor = Convert.ToInt32(poor.Substring(14, 6), 16).ToString;
textBox2.Text = poor;
}
}
else if (boog.Substring(0, 2) == "FE")
{
string poor = boog.Substring(2, boog.Length - 2);
if (poor.Substring(18, 2) != "00")
{
poor = poor.Substring(14, 6).ToString();
textBox2.Text = poor;
}
else
{
poor = Convert.ToInt32(poor.Substring(14, 4), 16).ToString();
textBox2.Text = poor;
}
}
}
}
catch
{
MessageBox.Show("请重新读出数据!","系统提示");
}
}
gaara777 2010-09-20
  • 打赏
  • 举报
回复
还是不行啊,,,
gaara777 2010-09-20
  • 打赏
  • 举报
回复
改过,,但是还是不行啊...是不是漏了什么???
  • 打赏
  • 举报
回复
对端口不熟,不过你可以看看是不是每次timer事件里面接收的数据都被刷新了,如果是这么的话,那么你就要考虑下读取机制了
  • 打赏
  • 举报
回复
//一个单击时间.
private void button2_Click(object sender, EventArgs e)
{
Thread.Sleep(100);
Transmit();
}
//上面调用此方法
public void Transmit()
{
Byte[] Send = new Byte[1];
Send[0] = 0xAA;
serialPort1.Write(Send, 0, 1);
Byte[] SendBy = new Byte[24];
byte Sum = 0;
SendBy[0] = 0x01;
SendBy[3] = 0x07;
for (int i = 0; i < 24; i++)
{
Sum = (byte)(SendBy[i] + Sum);
}
SendBy[23] = Sum;
this.serialPort1.Write(SendBy, 0, 24);
}
private void timer1_Tick(object sender, EventArgs e)
{
label2.Text = System.DateTime.Now.ToString("HH:mm:ss");
byte[] goor = new byte[serialPort1.BytesToRead];
serialPort1.Read(goor, 0, serialPort1.BytesToRead);
string boog = BitConverter.ToString(goor).Trim();
boog = boog.Replace("-", "");
Latestdata(boog);
}
public void Latestdata(string boog)
{
try
{
if (boog.Length > 4)
{
if (boog.Substring(0, 2) == "55")
{
string poor = boog.Substring(4, boog.Length - 4);
if (poor.Substring(18, 2) != "00")
{
poor = poor.Substring(14, 6).ToString();
textBox2.Text = poor;
}
else
{
poor = Convert.ToInt32(poor.Substring(14, 6), 16).ToString;
textBox2.Text = poor;
}
}
else if (boog.Substring(0, 2) == "FE")
{
string poor = boog.Substring(2, boog.Length - 2);
if (poor.Substring(18, 2) != "00")
{
poor = poor.Substring(14, 6).ToString();
textBox2.Text = poor;
}
else
{
poor = Convert.ToInt32(poor.Substring(14, 4), 16).ToString();
textBox2.Text = poor;
}
}
}
}
catch
{
MessageBox.Show("请重新读出数据!","系统提示");
}
}


好头大看得
兔子-顾问 2010-09-20
  • 打赏
  • 举报
回复
Thread.Sleep(100);这句话
修改为:




Thread.Sleep(1000);
这样试试,或是
int tick = Environment.TickCount;
while(Environment.TickCount-tick<1000) Application.DoEvents();
gaara777 2010-09-20
  • 打赏
  • 举报
回复
怎么没人知道???
gaara777 2010-09-20
  • 打赏
  • 举报
回复
timer1_Tick是不是根本没有运行到单击事件里...
《概率论与数理统计》是理工科大学中的一门重要基础课程,它结合了概率论的基本理论与统计学的方法,用于分析和处理随机现象。第二版的完整版多媒体教学系统旨在通过丰富的教学资源和互动体验,帮助学生深入理解和掌握这门学科的核心概念。 一、概率论基础 概率论是研究随机事件及其规律性的数学理论,主要包括以下几个关键概念: 1. 随机试验:概率论的研究对象,如掷骰子、抽卡等。 2. 样本空间:所有可能结果的集合。 3. 事件:样本空间的子集,代表某种特定的结果。 4. 概率:事件发生的可能性,通常介于0和1之间,表示为P(A)。 5. 条件概率:在已知某个事件发生的情况下,另一个事件发生的概率。 6. 乘法法则和加法法则:用于计算两个独立或不独立事件的概率。 二、概率分布 1. 离散概率分布:如二项分布、泊松分布、几何分布、超几何分布等,用于描述离散随机变量的分布情况。 2. 连续概率分布:如均匀分布、正态分布、指数分布等,适用于连续随机变量。 三、统计学基础 1. 参数估计:通过样本数据估计总体参数,如均值、方差等。 2. 抽样分布:统计量在多次重复抽样下的分布情况。 3. 点估计和区间估计:给出参数的一个估计值或一个估计范围。 4. 假设检验:检验关于总体参数的假设是否成立,如t检验、卡方检验、F检验等。 5. 回归分析:研究两个或多个变量间的关系,预测一个变量基于其他变量的值。 四、数理统计方法 1. 最大似然估计:寻找使样本数据出现概率最大的参数估计方法。 2. 矩估计:通过总体矩与样本矩的关系来估计参数。 3. 正态分布的中心极限定理:大量独立随机变量的和近似服从正态分布,即使这些变量本身非正态。 4. 协方差和相关系数:衡量两个随机变量之间线性关系的强度和方向。 5. 方差分析(ANOVA):比较多个组别间的均值差异。 五、多元统计分析 1. 多元正态分布:多维空间中的正态分布,常用于多元线性回归。 2. 判别分析:根据已知分类的样本数据,建立判别函数,对新数据进行分类。 3. 聚类分析:将相似数据分组,揭示数据内在结构。 4. 主成分分析(PCA):降低数据维度,提取主要特征。 六、多媒体教学系统 该教学系统可能包含以下组成部分: 1. 视频讲座:专家讲解理论和例题,直观展示概念。 2. 动画演示:动态模拟随机过程,帮助理解概率模型。 3. 交互式练习:提供习题和答案,实时反馈学习效果。 4. 实验教程:设计数学实验,让学生亲手操作,加深理解。 5. 电子教材:包含文字、图表、案例等丰富内容,便于自主学习。 通过这个多媒体教学系统,学生不仅可以学习到概率论与数理统计的理论知识,还能通过实践应用和互动学习,提升解决实际问题的能力。

111,110

社区成员

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

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

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