向串口连续发送指令,断点调试与直接运行不一致

向一个串口连续发送多条指令:

 private void OnOnebyOne(String[] str) {
            int i;
            String[] offstr = str;
            for (i = 0; i < offstr.Length; i++)
            {
                string oneoff = offstr[i];
                Send(oneoff);
            }
        }

  1.断点调试,逐步执行所有指令都可以执行。

  2.直接运行,只执行第一条指令。

原因:如果串口设置的BaudRate是9600,那一个byte为需要的发送时间:1/9600=0.00010417s=0.10417ms。发送的指令是16位byte,那么需要发送的时间:0.10417*16=1.66667ms

  指令连续发送前一帧,偏巧通讯丢一个byte,那么下一帧的第一个byte就会被“吃掉”,造成下一帧的错误指令。

  如果隔一段时间再发,那么就可以检测出和避免这个问题。

解决方案:(1)timer控件

      (2)线程

  我用的是线程解决的,每一次循环都睡眠10ms。

private void OnOnebyOne(String[] str) {
            int i;
            String[] offstr = str;
            for (i = 0; i < offstr.Length; i++)
            {
                string oneoff = offstr[i];
                Send(oneoff);
                Thread.Sleep(1000);
            }
        }

 

  

时间: 2024-07-31 17:06:01

向串口连续发送指令,断点调试与直接运行不一致的相关文章

Jquery等待ajax执行完毕继续执行(断点调试正常,运行异常)

以前写过一个程序,发现用断点调试的时候,一步步的运行,程序是可以的,但是去了断点程序就出现了问题. $(document).ready(function(){ var arra=new Array(); $.post("/getdata",null,function(data){ for(var i=0;i arra.push(data); } }); $("#item").val(data[0]); }); 发现自己犯了一个错误.首先,看一下$.post与$.aj

Xcode中如何在即将启动的APP中设置断点调试

在实际的App应用中,我们可能会碰到这么一种情况:我们设计一个APP,它可能会在外界发送某种消息或满足某种条件时,被动的启动加载,并根据外界传入的一些参数进行初始化工作. 这里由于程序是由其他程序启动的,所以我们不能够直接在XCode中编译运行程序并设置断点调试.但幸运的是,XCode提供了附加在进程上的调试功能,并且可以在进程启动前,通过进程名称等待进程运行,并在进程真正加载起来时,进入断点调试.具体方法如下: 1.在待调试的XCode中选择Debug->Attach to Process->

【HTTP】Fiddler(三)- Fiddler命令行和HTTP断点调试

转:http://blog.csdn.net/ohmygirl/article/details/17855031 一. Fiddler内置命令. 上一节(使用Fiddler进行抓包分析)中,介绍到,在web session(与我们通常所说的session不是同一个概念,这里的每条HTTP请求都成为一个session)界面中可以看到Fiddler抓取的所有HTTP请求.而为了更加方便的管理所有的session, Fiddler提供了一系列内置的函数用于筛选和操作这些session(习惯命令行操作l

Python进阶(三十五)-Fiddler命令行和HTTP断点调试

Python进阶(三十五)-Fiddler命令行和HTTP断点调试 一. Fiddler内置命令 ??上一节(使用Fiddler进行抓包分析)中,介绍到,在web session(与我们通常所说的session不是同一个概念,这里的每条HTTP请求都称为一个session).界面中能够看到Fiddler抓取的全部HTTP请求.而为了更加方便的管理全部的session, Fiddler提供了一系列内置的函数用于筛选和操作这些session(习惯命令行操作Linux的童鞋应该能够感受到这会有多么方便

IOS调试—断点调试以及动态输出

在开发App的过程中.须要重复的改动和优化我们的代码,特别是当程序出现bug,须要高速的找出错误的原因,进行改动,以保证程序的正确运行. 断点调试,是最经常使用最简单的一种调试方式,能够一步步跟踪程序运行的流程,得到变量的值,高速的找到错误的原因. 1.断点的基本操作 断点的操作很easy,以下通过几张图来介绍一下怎样加入.删除.编辑以及使用断点. 2.全局断点 设置全局断点(异常断点).当遇到错误,Debug程序会自己主动定位到栈底信息,即跳到出错代码所在行. 3.条件断点 设置条件断点.当满

不依赖浏览器控制台的JavaScript断点调试方法

随着浏览器的逐渐强大,绝大多数情况下的代码调试都是可以通过浏览器自带的一些调试工具进行解决.然而对于一些特殊情况仍然无法享受到浏览器的强大 调试能力,比如QQ客户端内嵌web的调试(虽然说QQ目前已经可以编译开发者工具,但是仍需要安装指定文件包或工具).非正常浏览器web.移动场景下 的内嵌等场景. 随着浏览器的逐渐强大,绝大多数情况下的代码调试都是可以通过浏览器自带的一些调试工具进行解决.然而对于一些特殊情况仍然无法享受到浏览器的强大 调试能力,比如QQ客户端内嵌web的调试(虽然说QQ目前已

NXP LPC17XX 串口接收发送中断(含RS485)最全面驱动程序

最近在做一个关于串口的项目,于是把之前的串口程序又拿了出来,重新优化了一下! 1.头文件<uart.h>如下: 1 /* 2 ****************************************************************************************************** 3 ** Copright(c) 2007-2014,深圳固镭特电子 ** 4 ** All rights reserved. ** 5 ** http://www.

Fiddler 高级用法:Fiddler Script 与 HTTP 断点调试

之前在<关于 WEB/HTTP 调试利器 Fiddler 的一些技巧分享>中系统的介绍过 Fiddler 的原理与一些常见技巧,但那篇文章只是入门科普,并不深入,今天要介绍到的内容相对更加高级与深入,扩展性更好,功能更加强大. 1.Fiddler Script 1.1 Fiddler Script简介 在web前端开发的过程中,fiddler是最常使用的一款调试工具.在大多数情况下,通过fiddler默认菜单的功能就可以基本满足开发者的调试需求,然而如果需要满足更复杂的调试场景时,单纯通过fi

Zend Studio集成Xdebug断点调试详解

转自:http://www.softown.cn/post/115.html Xdebug是PHP开发中两个常用的断点调试工具之一(另一个为Zend Debugger). 现在,我们在Zend Studio中集成PHP的Xdebug模块,从而在Zend Studio中实现断点调试功能. 1.下载.安装.配置Xdebug 关于如何在PHP中安装.配置Xdebug模块,请直接参考文章PHP安装配置Xdebug模块详解. 2.Xdebug远程连接配置 想要在Zend Studio中使用Xdebug,就