안녕하세요, 저는 Arduino에서 직렬 입력을 읽으려고하고 있지만 운이 없습니다. 나는 연결을 올바르게 열고 닫을 것이라고 믿지만 많은 성공을 거두지는 않습니다!Arduino에서 C# 코드를 읽지 못했습니다.
나는 Arduino가 시리얼 터미널에서 볼 수 있기 때문에 데이터를 출력하고 있다고 확신한다.
내 C# 프로그램의 코드는 아래와 같습니다. 누군가 놓친 실수를 발견 할 수 있는지 궁금합니다.
은 또한이 내가 받아야하는 직렬 데이터의 예입니다 "12.2,1111,332,233"난 그냥 당신이, 당신이 경우 수정해야합니다 같은 일에 일하는
namespace FridgeProtectionDeviceMonitor
{
public partial class Online_mode : Form
{
public Online_mode()
{
InitializeComponent();
}
private void Online_mode_Load(object sender, EventArgs e)
{
cmbPortSelection.DataSource = SerialPort.GetPortNames();
cmbChartSelection.SelectedIndex = 0;
}
string x = "";
SerialPort port;
private void btnFindPorts_Click(object sender, EventArgs e)
{
var ports = SerialPort.GetPortNames();
cmbPortSelection.DataSource = ports;
}
private void btnOpenPort_Click(object sender, EventArgs e)
{
if (cmbPortSelection.SelectedIndex > -1)
{
port = new SerialPort(cmbPortSelection.Text);
try
{
if (!port.IsOpen)
{
port.BaudRate = 9600;
port.Open();
}
}
catch (Exception)
{
MessageBox.Show("Serial connection request denied: Port is in use!");
}
}
else
{
MessageBox.Show("Serial connection request denied: No port selected!");
}
}
private void btnClosePort_Click(object sender, EventArgs ex)
{
try
{
port.Close();
}
catch (Exception)
{
MessageBox.Show("Serial close connection request denied: ", ex.ToString());
}
}
private void update(object sender, EventArgs e)
{
txtSaveLocation.Text = x;
}
private void port_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
x = port.ReadLine().ToString();
MessageBox.Show(x);
this.Invoke(new EventHandler(update));
}
}
}