非常感谢任何帮助我还在学习C#和arduino通信..我试图从C#接收一些关于arduino发送的数据,但是我没有看到串行监视器上的发送数据。我想知道我是如何收到发送数据的。以下是我的代码:
C#:
protected void Button7_Click(object sender, EventArgs e)
{
{
SerialPort comPort = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One);
try
{
comPort.Open();
comPort.Write(TextBox1.Text);
comPort.Write("Delete");
comPort.Close();
}
catch (UnauthorizedAccessException ex)
{
Response.Write("Error:" + ex.ToString());
}
try
{
OleDbConnection conn = new OleDbConnection("Provider= Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("App_Data\\Stock.mdb"));
conn.Open();
Int32 ash = Convert.ToInt32(TextBox1.Text);
string deleteQuery = "delete from Instock where ID= '" + ash + "'";
OleDbCommand com = new OleDbCommand(deleteQuery, conn);
com.ExecuteNonQuery();
Response.Write("Item deleted successfully");
Response.Redirect("UpdateDB.aspx");
conn.Close();
}
catch (Exception ex)
{
Response.Write("Error:" + ex.ToString());
}
}
}
Arduino的:
#include <EEPROM.h>
#include <SoftwareSerial.h>
SoftwareSerial xbee(2, 3);
int incoming;
int id;
int rea;
int comp=0;
void setup() {
Serial.begin(9600);
xbee.begin( 9600 );
}
void loop() {
if(Serial.available())
{
Serial.print("hhhh");
id = Serial.read();
incoming = Serial.read();
if(id!='New')
{
xbee.println(id);
xbee.println(incoming);
EEPROM.write(id, incoming);
rea = EEPROM.read(id);
Serial.print(id);
}
else
{
EEPROM.write(comp, incoming);
rea = EEPROM.read(id);
Serial.print(id);
comp+=1;
}
}
}
答案 0 :(得分:0)
首先,我认为定义一种灵活且适合您的通信要求的消息格式非常重要(例如,发送/接收具有不同数据类型的多个参数的命令等)。
幸运的是,已经有一个名为CmdMessenger的综合库,它处理Arduino和C#应用程序之间的双向通信。该库的使用非常简单,网上有几个examples。我认为很容易根据您的个人需求更改示例。