gpt4 book ai didi

c# - C#中如何从串口读取字节数组

转载 作者:行者123 更新时间:2023-11-30 12:45:14 24 4
gpt4 key购买 nike

<分区>

我的C#串口编程有问题
我的目标是将 ByteArray 发送到串行端口,而不是作为 ByteArray 获取。但我无法从串口获取。我试过:

string gelen = port.ReadExisting();
int asd = port.ReadByte();
string qwe = port.ReadLine();

谁能告诉我这是怎么回事? 谢谢

我的代码:

    using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace serial_port_app
{

public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)
{

int text1, text2,text3,text4,text5, text6;

Int32.TryParse(textBox1.Text, out text1);
byte byteValue1 = Convert.ToByte(text1);

Int32.TryParse(textBox2.Text, out text2);
byte byteValue2 = Convert.ToByte(text2);

Int32.TryParse(textBox3.Text, out text3);
byte byteValue3 = Convert.ToByte(text3);

Int32.TryParse(textBox4.Text, out text4);
byte byteValue4 = Convert.ToByte(text4);

Int32.TryParse(textBox5.Text, out text5);
byte byteValue5 = Convert.ToByte(text5);

Int32.TryParse(textBox6.Text, out text6);
byte byteValue6 = Convert.ToByte(text6);


byte[] byteArray = new byte[6];

byteArray[0]=byteValue1;
byteArray[1]=byteValue2;
byteArray[2]=byteValue3;
byteArray[3]=byteValue4;
byteArray[4]=byteValue5;
byteArray[5]=byteValue6;


SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);

port.Open();
port.Write(byteArray,0,6);

>>>>>>>>>>>>> string text = port.ReadExisting();
>>>>>>>>>>>>> int asd = port.ReadByte();
>>>>>>>>>>>>> string qwe = port.ReadLine();

int n=dataGridView1.Rows.Add();

dataGridView1.Rows[n].Cells[1].Value = text;
dataGridView1.Rows[n].Cells[2].Value = asd;
dataGridView1.Rows[n].Cells[3].Value = qwe;
dataGridView1.Rows[n].Cells[4].Value = text4;
dataGridView1.Rows[n].Cells[5].Value = text5;
dataGridView1.Rows[n].Cells[6].Value = text6;



if ((n % 2) == 0)
dataGridView1.Rows[n].DefaultCellStyle.BackColor = Color.LightBlue;
else
dataGridView1.Rows[n].DefaultCellStyle.BackColor = Color.LightGreen;

port.Close();
}

编辑正确答案:

删除:

string text = port.ReadExisting();
int asd = port.ReadByte();
string qwe = port.ReadLine();

并添加:

port.DtrEnable = true;
port.RtsEnable = true;

int bytes = port.BytesToRead;
byte[] buffer = new byte[bytes];
port.Read(buffer, 0, bytes);

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com