我有一个 Arduino XBee盾牌和一个 Sparkfun XBee USB 浏览器。我想发送来自 Ardunio XBee 的数据(温度传感器)并在我的 C# 程序中接收它。
现在,假设我想将 45、100 发送到我的 C# 程序。
我没有收到来自 XBee shield 的任何数据。我是否遗漏了代码中的任何内容?
下面的代码是来自 Arduino XBee shield 的发送者:
SoftwareSerial mySerial(4,5);
void setup()
{
    mySerial.begin(9600);
}
void loop()
{
    if (mySerial.available() > 0)
    {
        mySerial.write(45);
        mySerial.write(',');
        mySerial.write(100);
        mySerial.write('\n');
    }
}
C# 中 USB XBee 资源管理器的接收器代码:
SerialPort port = new SerialPort();
public Form1()
{
    try
        {
            port.PortName = "COM8";
            port.BaudRate = 9600;
            port.DataBits = 8;
            port.Parity = Parity.None;
            port.StopBits = StopBits.One;
            port.Open();
            Console.WriteLine("Opened");
        }
        catch(Exception ex)
        {
            Console.WriteLine("Sorry! " + ex);
        }
        // Handler for receiving data
        port.DataReceived += serialPort1_DataReceived;
    }
    private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
    {
        if (port.IsOpen == true)
        {
            string RxString = port.ReadLine();
            Console.WriteLine(RxString);
        }
    }
XBee 配置:
- 一个 XBee 是:协调器 AT 模式——连接到 USB Sparkfun Explorer
 - 另一个 XBee 是:Router AT 模式——连接到 Arduino shield
 
正如 tomlogic 在 Stack Overflow 问题XBee 双向通信(发送方和接收方)中同时回答了我的问题。