I mam problem z odbiorem danych z mikrokontrolera STM32, ponieważ aplikacja się wiesza i wyłącza albo podczas uruchamiania wyskakuje mi błąd:
Kod: Zaznacz cały
Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.
Kod: Zaznacz cały
HidLibrary.HidReport wej = new HidLibrary.HidReport(hidusb.Capabilities.InputReportByteLength);
Kod: Zaznacz cały
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using HidLibrary;
namespace stm32_usb
{
public partial class Form1 : Form
{
private static HidDevice hidusb;
byte[] button = new byte[1];
public const int VID = 0x0483;
public const int PID = 0x5750;
public Form1()
{
InitializeComponent();
Thread odczyt = new Thread(odczyt_danych);
odczyt.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
hidusb = HidDevices.Enumerate(VID, PID).FirstOrDefault();
if (hidusb != null)
{
hidusb.OpenDevice();
label1.Text = "Podłączony";
if (button[0] == 0x01)
panel1.BackColor = Color.Green;
else
panel1.BackColor = Color.Red;
}
else
{
label1.Text = "Nie połączony";
}
}
void odczyt_danych()
{
HidLibrary.HidReport wej = new HidLibrary.HidReport(hidusb.Capabilities.InputReportByteLength);
while(true)
{
if (hidusb != null)
{
wej = hidusb.ReadReport();
if (wej.ReportId == 0x02)
button[0] = wej.Data[0];
}
Thread.Sleep(50);
}
}
}
}