Я пытаюсь прочитать данные датчика в реальном времени с FTDI на C# через последовательный порт. Я выполнил этот код, но я не получаю никаких данных. Я уже установил параметры для последовательного порта:
- Скорость передачи: 115200
- Биты данных: 8
- Стоп-биты: 1
- RtsEnable: True
- DtrEnable: True
Необходимо ли добавлять библиотеку FTDI для чтения данных?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
using System.Timers;
using System.IO.Ports;
using System.Text.RegularExpressions;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
double[] a = new double[30];
public Form1()
{
InitializeComponent();
serialPort1.PortName = "COM5";
serialPort1.DataReceived += serialPort1_DataReceived;
}
public void configrations()
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
public void button1_Click(object sender, EventArgs e)
{
serialPort1.Open();
}
int x = 0;
int y = 0;
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
try
{
int dataLength = serialPort1.BytesToRead;
byte[] dataRecevied = new byte[dataLength];
int nbytes = serialPort1.Read(dataRecevied, 0, dataLength);
string line1 = Convert.ToString(nbytes * 10000);
this.BeginInvoke(new LineReceivedEvent(LineReceived), line1);
}
catch { }
}
private delegate void LineReceivedEvent(string line1);
private void LineReceived(string line1)
{
label1.Text = line1;
}
private void button2_Click(object sender, EventArgs e)
{
serialPort1.Close();
}
}
}