0

我正在使用 C# UI 来控制 Arduino 板,它运行良好。我正在使用文本协议发送命令和值。但是,我不知道如何从 Arduino 接收多个传感器值到 C#。

从 C# 到 Arduino,我在字符串的开头和结尾使用 ASCII 图表来确定值应该存储在 Arduino 中的什么位置。在阿杜诺:

void serial_Sensitivity_command(){
    if (Serial.available()){
        while (Serial.available() >= 0){
            if (inChar == SOFF){
                dex1 = 0;
                inData_sens[dex1] = '\0';
                started1 = true;
                ended1 = false;
            }
            else
                if (inChar == EOFF){
                    ended1 = true;
                }
                else
                {
                    if (dex1 < 9){
                        inData_sens[dex1] = inChar;
                        dex1++;
                        inData_sens[dex1] = '\0';
                    }
                }

                if (started1 && ended1){
                    sensitivity_gain = atoi(inData_sens);
                    started1 = false;
                    ended1 = false;
                    dex1 = 0;
                    inData_sens[dex1] = '\0';
                }
            break;
        }
    }
}

我想将八个不同的值路由到 C# 中的每个文本块。有没有像我在 Arduino 中那样在 C# 中使用的类似方法?

或者我应该读取字符串数组然后使用子字符串?

4

1 回答 1

0

我没有尝试过字符串协议,但我已经成功使用了USB上的串口。

在阿杜诺:

//Reading in
while(Serial.available(){
    unsigned char c;
    c = Serial.read();
    if (c == EOFF)
        <process input>
    else
        <buffer input>
}

//sending out
Serial.write(byte1);
Serial.write(byte2);
....
Serial.write(<End of stream marker);

然后在 C# 中,您可以使用System.IO.PortsSerialPort 读取数据并以相同格式收集数据。

于 2013-04-13T14:51:39.943 回答