日期:2014-05-17  浏览次数:20724 次

读取串口缓冲区会超时..........急!
本帖最后由 shinjixyj 于 2013-08-15 09:01:03 编辑
在读取时 有时会 发生超时 超时时间不定  有时超过10毫秒 有什么办法能快点吗  最好3毫秒内读好一个寄存器

                for (int i = 0; i < len; i++)
                {
                    c = sw.ElapsedMilliseconds;
                    serialPort1.Read(num, i, 1);
                    d = sw.ElapsedMilliseconds;
                    if ((d - c) > databyteout)//databyteout = 3
                    {
                        WritePrivateProfileString("error", "C:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), " " + c, FileNameerror);//记录时间
                        WritePrivateProfileString("error", "D:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), " " + d, FileNameerror);
                        Form2.isok = false;
                        Form2.boolcheck = false;
                        WritePrivateProfileString("error", "error" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), "字间超时!"
                            + num[i] + " " + i + " " + thenum[0], FileNameerror);//记录读取超时的寄存器
                        MessageBox.Show("字间超时!");
                        serialPort1.DiscardInBuffer();