首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用Pi和Arduino进行串行通信

问利用Pi和Arduino进行串行通信
EN

Stack Overflow用户
提问于 2013-05-23 00:16:02
回答 1查看 946关注 0票数 3

我正在尝试通过串行连接与Raspberry Pi中的Arduino进行通信。我一直在尝试minicom和一个小Python程序来测试串行连接,然后将其从Arduino Mega回显到我PC上的串行监视器。由于某些原因,我发送给Arduino的内容在发送过程中出现了乱码,结果与我发送的内容完全不同。我使用Sparkfun逻辑电平转换器来保持5v和3.3v的分离。

下面是Pi上的Python:

代码语言:javascript
复制
import serial
import time

serialport = serial.Serial(port="/dev/ttyAMA0", baudrate=19200, bytesize=8, timeout=1)
serialport.write('POP')

以下是Arduino上的代码:

代码语言:javascript
复制
void setup()
{
Serial.begin(19200);
Serial.println("connected to PC ");
Serial1.begin(19200);
}

void loop()
{

  if(Serial1.available())
    {
      delay(1000);

    byte inByte = Serial1.read();
    char cByte = inByte;
    Serial.write("c: ");
    Serial.write(cByte);
    Serial.write("b: ");
    Serial.println(inByte, BIN);
    }
  if(Serial.available())
    Serial1.write(Serial.read()); 
}

我通过串行接口发送了'POP‘,但这是对我的串行监视器的输出: c: b: 0 c: b: 10101 c:}b: 1111101 c: b: 1

如果我改变它,例如发送'doodle‘,我会得到这个: c: b: 1010011 c: Sb: 0c:

代码语言:javascript
复制
     b: 1010          c: ºb: 10111010          c: :b: 111010         c: ªb: 10101010         c:  b: 10

如果格式不正确,则在二进制文件的末尾和下一个c:之间有一个换行符,并且有一个换行符作为涂鸦中间的字符(其中二进制文件读取的是1010)。

我猜这些部分被奇怪地切断了,但我不知道为什么。

EN

回答 1

Stack Overflow用户

发布于 2013-05-23 00:18:56

乱码信息最常见的原因是没有在两端设置正确(相同)的波特率

您是否编辑了/etc/inittab以阻止它重新生成tty?(pi)

代码语言:javascript
复制
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16696764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档