我是Arduino和该网页的新手,所以请谅解并抱歉我的英语不好。我希望我把事情写清楚了。
我在尝试以下命令IRsend::sendNEC(String&, int)
时收到此错误irsend.sendNEC(String, 32)
。我试图转换int,但我犯了更多错误。
这是我的C#代码:
serialPort = new SerialPort("COM9", 115200);
serialPort.BaudRate = 9600;
serialPort.ReadTimeout = 500;
serialPort.Parity = Parity.None;
serialPort.DataBits = 8;
serialPort.StopBits = StopBits.One;
serialPort.Handshake = Handshake.None;
serialPort.DtrEnable = false;
serialPort.RtsEnable = true;
serialPort.Open();
serialPort.DataReceived += new SerialDataReceivedEventHandler(SignalReceived);
private void SignalReceived(object sender, SerialDataReceivedEventArgs e)
{
if (serialPort.IsOpen)
{
string indata = serialPort.ReadExisting();
this.Invoke((MethodInvoker)delegate
{
if(indata != null | indata != "")
textBox1.AppendText(indata + Environment.NewLine);
});
}
private void button1_Click(object sender, EventArgs e)
{
serialPort.Write("0xFF1AE5");
}
我尝试将serialPort写入int:
int MyInt = 0xFF1AE5;
byte[] b = BitConverter.GetBytes(MyInt);
serialPort.Write(b,0,4);
这是我的arduino代码:
#include <IRremote.h>
IRsend irsend;
String str = Serial.readString();
unsigned long cmdlong = str.toInt();
irsend.sendNEC(cmdlong, 32);
Serial.println(cmdlong);
输出将为空。 我也尝试过转换char,但没有不同。
char inData[str.length() + 1];
str.toCharArray(inData, str.length() + 1);
irsend.sendNEC(inData, 32);
感谢您的所有创意!