如何从visual studio C#向arduino发送整数值

时间:2013-10-16 22:26:26

标签: c# arduino

我研究了一个关于使用visual studio C#控制机器人的项目。我想控制一个步进电机连接arduino与轨道位置。但我不会通过串口将跟踪值作为整数发送到arduino。我可以发送字符或字符串值。我想将每个音轨值发送到arduino以控制步进电机。

1 个答案:

答案 0 :(得分:1)

在C#方面,您可以使用以下内容:

Byte[] bytes = BitConverter.GetBytes(1234); //1234-sample  32 bit int

注意字节序,在这个例子中,字节[0]将是最不重要的字节,所以最好从头开始发送这个数组。

在Arduino方面,您可以将此数组字节转换为字节,并通过左移将其组合回int,例如:

tmp_long|=getbyte(); //got first byte of int
tmp_long<<=8;
tmp_long|=getbyte(); //got second byte of int
tmp_long<<=8;
tmp_long|=getbyte(); //
tmp_long<<=8;
tmp_long|=getbyte(); //

//记住,int在C#中是32位,在Arduino Uno上是16位,所以你需要长类型。

或者你可以输入dede union,并逐字节填充它,如下所示:

typedef union _WORD_VAL
{
    unsigned long Val;
    unsigned char v[4];
} WORD_VAL;

WORD_VAL myData;

myData.v[0]=getbyte(); //got first byte of int
myData.v[1]=getbyte();
myData.v[2]=getbyte(); 
myData.v[3]=getbyte();

unsigned long data=myData.Val; //got assembled in back