c#串口助手的程序,各位大神可以指点一句程序也行!

[复制链接]
1241|3
手机看帖
扫描二维码
随时随地手机跟帖
HAO123456025F|  楼主 | 2016-1-29 11:11 | 显示全部楼层 |阅读模式
        private void MyInitializeComponent()
        {
            string[] ports = MulGetHardwareInfo(HardwareEnum.Win32_PnPEntity, "Name");

            foreach (string port in ports)
            {
                // show the instance
                string Temp;
                /*将名称修改为COMn:Name的形式*/
                int indexStart, indexEnd, lengthCOM;
                indexStart = port.IndexOf("COM");
                indexEnd = port.Length;
                lengthCOM = indexEnd - indexStart;
                Temp = port.Substring(indexStart, lengthCOM);
                Temp = Temp.Insert(lengthCOM, port.Substring(0, indexStart));
                Temp = Temp.Replace(')', ':');
                Temp = Temp.Replace('(', ' ');
                this.comboBoxSelectCOM.Items.Add(Temp);
            }
            comboBoxSelectCOM.SelectedIndex = 0;
            comboBoxBaudRate.SelectedIndex = Properties.Settings.Default.BaudRateIndex;
            comboBoxDataBit.SelectedIndex = Properties.Settings.Default.DataBitsIndex;
            comboBoxStopBit.SelectedIndex = Properties.Settings.Default.StopBitsIndex;
            comboBoxParity.SelectedIndex = Properties.Settings.Default.ParityIndex;

            isHexForShow = Properties.Settings.Default.CheckedHexForRecv;
            isHexForSend = Properties.Settings.Default.CheckedHexForSend;
            checkBoxHexForRecv.Checked = isHexForShow;
            checkBoxHexForSend.Checked = isHexForSend;
            checkBoxShowThem.Checked = Properties.Settings.Default.CheckedShowThem;
            if (checkBoxShowThem.Checked)
            {
                textBoxRecvData.BackColor = Color.White;
                textBoxRecvData.ForeColor = Color.Black;
            }
            else
            {
                textBoxRecvData.BackColor = Color.Black;
                textBoxRecvData.ForeColor = Color.Lime;
            }
            isTimeStamp = Properties.Settings.Default.CheckedTimeStamp;
            checkBoxTimeStamp.Checked = isTimeStamp;

            toolStripStatusLabelTime.Text = DateTime.Now.ToString();
            bytesHadRecv = 0;
            bytesHadSend = 0;
            isSendRdy = true;

            _serialPort = new SerialPort();

            myCOMSReSet();

            _serialPort.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.recvDataFromCOM);//数据接收

            RecvQueue = new Queue<Byte>(_serialPort.ReadBufferSize);

            keepThreaHandle = true;
            threadHandleData = new Thread(handleData);                                                            //数据处理
            threadSendData = new Thread(sendData);
            threadHandleData.Start();
            threadSendData.Start();
        }

        /*事件驱动接收串口数据并保存到缓冲队列中*/
        private void recvDataFromCOM(object sender, SerialDataReceivedEventArgs e)
        {
            int i, BytesToRead;
            BytesToRead = _serialPort.BytesToRead;
            Byte[] ByteBuff = new Byte[BytesToRead];
            _serialPort.Read(ByteBuff, 0, BytesToRead);
            for (i = 0; i < BytesToRead; i++)
            {
                RecvQueue.Enqueue(ByteBuff[i]);
            }
        }

相关帖子

1026869700| | 2016-4-27 09:00 | 显示全部楼层
对呀,有什么问题?要是完全看不懂的话,先去看看C#语法吧!

使用特权

评论回复
HAO123456025F|  楼主 | 2017-8-8 09:19 | 显示全部楼层
yyy71cj 发表于 2016-1-30 09:56
这有什么问题么?

经过一年学习看懂了

使用特权

评论回复
HAO123456025F|  楼主 | 2017-8-8 09:19 | 显示全部楼层
1026869700 发表于 2016-4-27 09:00
对呀,有什么问题?要是完全看不懂的话,先去看看C#语法吧!

有好的学习帖子吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

20

帖子

0

粉丝