Я работаю над проектом и использую этот веб-сайт в качестве ссылки, чтобы получить Netduino для связи с моим ПК.
Я приобрел этот приемопередатчик Bluetooth. Кажется, это обновленная версия той, что использовалась в исходном посте. 1.06 против 1.04 на его сайте.
Я установил TXD Bluetooth на Pin0, RXD на Pin1 и VCC на 5V.
Это мой код на Netduino:
static SerialPort Bluetooth;
public static void Main()
{
Bluetooth = new SerialPort(SerialPorts.COM1, 9600, Parity.None, 8, StopBits.One);
Bluetooth.DataReceived += new SerialDataReceivedEventHandler(Bluetooth_DataReceived);
Bluetooth.Open();
Thread.Sleep(Timeout.Infinite);
}
static void Bluetooth_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
byte[] bytes = new byte[1];
while(Bluetooth.BytesToRead > 0)
{
Bluetooth.Read(bytes, 0, bytes.Length);
Debug.Print(bytes[0].ToString());
}
}
Это мой код на моем ноутбуке: (это приложение WPF)
SerialPort serialBT;
private void Connect()
{
// COM7 is the outgoing port that corresponds to the Bluetooth transceiver
serialBT = new SerialPort("COM7", 9600, Parity.None, 8, StopBits.One);
serialBT.Open();
serialBT.Write(new byte[] { 23, 24, 25, 26 }, 0, 4);
Debug.Print("Values sent");
}
В Netduino, когда я отправляю массив байтов из 23, 24, 25 и 26 (только для целей тестирования), срабатывает событие DataReceived. Однако значения, которые он получил и распечатал в окне отладки, составляют 6, 0, 0 и 248 вместо 23, 24, 25 и 26, которые должны быть.
Другие ценности, которые я посылаю, так же таинственным образом трансформируются в совершенно другие.
Я трижды проверил правильные настройки COM для приемопередатчика Bluetooth, и это правильные настройки. Я перепутал выводы TXD и RXD, так как оригинальный Arduino ожидает, что TXD будет выводом 1, а RXD — выводом 0, но это приводит к тому, что данные не принимаются на Netduino.