我的步进电机出问题了。我编写了arduino代码,当命令从串行终端或tera术语发送时,它可以工作。当我按"R“步进电机连续旋转时,当我按下"P”键时,电机停止转动。我的问题是为什么这些命令在从C#应用程序发送时不能工作?当我尝试步进电机时,只需转动一步。从串行监视器发送命令和C#应用程序之间有什么区别吗?
void loop()
{
if (Serial.available() > 0)
{
int command = Serial.read();
{
if (command == 'R')
{
do {
stepper.runSpeed();
} while (Serial.available() == 0);
Serial.read();
}
else if (command == 'P')
{
stepper.stop();
}
}C#代码:
private void button5_Click(object sender, EventArgs e)
{
serialPort.WriteLine("R");
}
private void button6_Click(object sender, EventArgs e)
{
serialPort.WriteLine("P");
}发布于 2014-08-16 18:37:18
SerialPort.WriteLine()添加了"\r\n"。\r将立即终止接收端的do{ ... }while()循环。
所以用吧
private void button5_Click(object sender, EventArgs e)
{
//serialPort.WriteLine("R");
serialPort.Write("R");
}发布于 2017-09-11 18:19:22
使用命令serial.parseInt();而不是serial.read,并从c#发送一个字符串。
https://stackoverflow.com/questions/25342642
复制相似问题