我正在做一个项目,我正在使用这个网站作为参考,让我的 Netduino 与我的 PC 进行通信。
我已经购买了这款蓝牙收发器。它似乎是原始帖子使用的版本的更新版本。1.06 vs 1.04 在他的网站上。
我将蓝牙的 TXD 设置为 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 设置三倍,这些都是正确的设置。我已经翻转了 TXD 和 RXD 引脚,因为最初的 Arduino 期望 TXD 是 Pin1 而 RXD 是 Pin0,但这会导致 Netduino 上没有接收到数据。