Ошибка открытия COM порта "неверно задан параметр" - C#

Узнай цену своей работы

Формулировка задачи:

Вот текст программы
 public partial class Form1 : Form
    {
       SerialPort _SerialPort1 = new SerialPort("COM1", 128000, Parity.None, 8, StopBits.One);  //инициалаизация порта
 
        string[] portsName;
 
        public Form1()
        {
            InitializeComponent();          
        }
     private void button7_Click(object sender, EventArgs e)
        {
            if (_SerialPort1.IsOpen == false)
            {
                _SerialPort1.ReceivedBytesThreshold = 4;
                _SerialPort1.ReadTimeout = 5000;
                _SerialPort1.Encoding = System.Text.Encoding.Default;
                portsName = SerialPort.GetPortNames();
                comboBox1.Items.AddRange(portsName); //записать список портов в Комбокс
 
// дублирую параметры объявления. т.к. пробовал просто  объявлять  SerialPort _SerialPort1 = new SerialPort(); ошибка та же самая 
 
                _SerialPort1.PortName = portsName[0];//значение portsName[0]  - COM1
                _SerialPort1.BaudRate = 128000;
                _SerialPort1.DataBits = 8;
                _SerialPort1.StopBits = StopBits.One;

                try
                {
                    _SerialPort1.Open();
                }
                catch (InvalidCastException)
                {
                }
                if (_SerialPort1.IsOpen == true)
                {
                    button5.Enabled = true;
                    button6.Enabled = true;
                }
            }
 
        }
    }
Проект компилируется. при нажатии кнопки (button7) выдается ошибки на строчке _SerialPort1.Open(); пишет что неверно задан параметр. никак не пойму какой параметр задан неверно

Решение задачи: «Ошибка открытия COM порта "неверно задан параметр"»

textual
Листинг программы
   private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            rx_string = serialPort1.ReadExisting();
            // serialPort1.Read(rxByte, 0, 7);
            if (rxByte[0] == 0x49)
            {
                if (rxByte[2] == 2) depth = depth + 1 * reverse;
                else depth = depth - 1 * reverse;
 
                serialPort1.DiscardInBuffer();
                this.Invoke(new EventHandler(readPort));
            }
            else serialPort1.DiscardInBuffer();
            this.Invoke(new EventHandler(readPort));
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5
Похожие ответы