Arduino和树莓之间的串行通信非常慢(0.2秒)

时间:2015-04-17 19:16:15

标签: python serial-port arduino raspberry-pi

当我尝试通过覆盆子Pi 2上的串口发送/接收数据时,我遇到了问题......我也使用了Arduino Mega和AUNO 我也尝试过nanpy库,它工作得很慢

python代码:

import serial
from time import sleep

ser = serial.Serial('/dev/ttyACM1', 9600)
while 1 :
    a= ser.readline()

    ser.write('5')
    print (a)

Arduino代码:

void setup()
{

    Serial.begin(9600);
    for (int i=2;i<=13;i++){
     pinMode(i,OUTPUT);
    }
}

void loop()
{
  Serial.println("Hello Pi");
 if (Serial.available()>0) {

     for(int i=2;i<=13;i++){
     analogWrite(i,255);
     Serial.print (Serial.read());
  } } }

请帮助,这是完成项目代码的最后一步:'(

感谢名单

1 个答案:

答案 0 :(得分:1)

您的Python程序将阻塞语句ser.readline(),直到串行端口获得“\ n”(换行符)字符。看起来你的Arduino程序除了语句Serial.println之外不会发送换行符。因此,您的Python程序将打印与调用函数loop()完全相同的内容。你提供的代码从不调用循环,因此没有人能够知道它的频率。顺便说一句,你的loop()函数没什么意义;每次调用它时都会写入“Hello pi”后跟换行符,然后它会读取串行端口12次,每次写入读取的内容。似乎有点奇怪。这就是你想要的吗?