我有一个变量“值”,其中包含从串行端口收到的最后一条消息。我有一个多行文本框“txtOutput”,显示从串行接收到的所有消息。我还有一个 if 语句,用于过滤特定消息以执行我放置在 txtOutput_TextChanged 下的操作,以便在每次有新消息时更新 textBox6 中的数字。
int turns = 0;
private void txtOutput_TextChanged(object sender, EventArgs e)
{
if (value == 1)
{
textBox6.text = turns.ToString();
turns ++;
}}
单击微动开关时,我从连接到微处理器的串行端口收到消息“1”。微动开关正在监控转动非常缓慢的电机的旋转。
我的目标是在将上述计数系统用于进一步实现 RPM 计数器之前,使其正确。我现在遇到的问题是微动开关经常被按下太久(50 到 100 微秒),我从串行接收到几条连续的消息(2 或 3 条),我最终计算的圈数比实际圈数多。我在微控制器方面提供了一些延迟,但我不能玩太多,否则在不同的速度下我会遇到问题。 有没有办法考虑只从串行接收的一条消息,如果它们在同一类型内连续出现,比如 1 秒时间跨度?
我将不胜感激一些想法和示例片段。谢谢