使用 PySerial 从 Arduino 到 Raspberry Pi 的串行接收在一段时间后停止

2023-11-21

我正在开发一个项目,其中我必须一次接收大约 25 个字符的数据,以便在 Raspberry Pi 中处理它。下面是生成一些我想从 Arduino 接收的数据的示例代码:

char i =0;
char  a =0;
char b=0;


void setup(){

 Serial.begin(9600);
 for(i=0;i<25;i++){

    Serial.print('l');}
    Serial.print('\n');
    delay(2000);
}


void loop(){

 for(i=0;i<25;i++){
     for(a=0;a<i;a++){
      if((a==9)||(a==19)||(a==24))
          Serial.print('l');
      else
          Serial.print('d');   
     }
     for(b=0;b<25-i;b++){
          Serial.print('l');
     }


     delay(2000);
  }
}

它发送类似于“lllldddddllldddd...”的行,该行的长度为 25 个字符。现在,我想用 Raspberry Pi 接收这个。这是我正在尝试工作的代码:

ser = serial.Serial('/dev/AMA0',9600,timeout=1)
ser.open()

try:
   serial_data = ser.readline()
   print serial_data
except serial.serialutil.SerialException:
   pass

这段代码在大约 5 秒内非常正确地接收数据,然后突然停止接收。

此外,当我尝试以下操作时,我没有得到任何输出或输入/输出错误。

serial_data = ser.readline()
print serial_data

EDIT1:好的,我现在评论了异常。它给出以下错误:

 raise SerialException('device reporst rediness to read but returned no data (device disconnected?)')
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected?)

通过 PySerial 从 arduino 接收 25 个字符数据到树莓派的正确方法是什么?任何帮助将不胜感激。


我遇到了同样的问题,并且很头疼,试试这个

Run

ps -ef | grep tty

如果输出看起来像

root      2522     1  0 06:08 ?        00:00:00 /sbin/getty -L ttyAMA0 115200 vt100

然后您需要禁止 getty 尝试向该端口发送数据

为了使用Raspberry Pi的串口,我们需要通过在文件/etc/inittab中找到这一行来禁用getty(显示登录屏幕的程序)

T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

并在前面加#注释掉

#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100)

为了防止 Raspberry Pi 在启动时向串行端口发送数据,请转到文件 /boot/cmdline.txt 并找到该行并将其删除

console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

重新启动树莓派

信用到期的信用:http://blog.oscarliang.net/raspberry-pi-and-arduino-connected-serial-gpio/帮助我弄清楚如何禁用 getty

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PySerial 从 Arduino 到 Raspberry Pi 的串行接收在一段时间后停止 的相关文章

随机推荐

  • Mercurial 如何处理分割的文件?

    Mercurial 如何处理分割的文件 如果我创建一个分支并拆分一个文件会发生什么 我可以轻松地从修改原始未分割文件的另一个分支中提取更改吗 我只是做了一个小实验 我创建了一个存储库 foo 与一个大文件 然后我将其克隆到bar used
  • JSF 在 SVG 之后吞掉结束标签

    我用的是两个
  • 停止 MySQL 在 UNIQUE 约束中容忍多个 NULL

    Mysql 架构是 CREATE TABLE Foo bar INT NULL name VARCHAR 59 NOT NULL UNIQUE name bar ENGINE INNODB MySQL 允许重复以下语句 从而导致重复 INS
  • 当方法仅在 return 语句处等待时,将方法标记为异步是否有用? [复制]

    这个问题在这里已经有答案了 只有下面方法的最后一行在方法返回之前使用了 await 所以这是否意味着该方法基本上是同步的 应该只调用 Get 而不使用 async 修饰符和后缀 Async public virtual async Task
  • malloc分配的对象的动态类型是什么?

    C 标准引用术语 动态类型 C 标准在类似上下文中引用 有效类型 例如 如果程序尝试通过访问对象的存储值glvalue除以下类型之一外 行为未定义 对象的动态类型 但是对象的动态类型是如何分配的malloc决定 例如 void p mall
  • Neo4j 中每个查询返回前 n 个结果

    我一直在尝试在密码查询中执行以下任务 但没有得到正确的结果 其他 stackoverflow 问题讨论了 limit 或collect 但我认为这不足以完成以下任务 任务 我有 p Product 节点 并且两个产品节点之间存在一种名为 B
  • 递归列表展平

    我可能可以自己写这个 但我试图完成它的具体方式让我失望 我正在尝试编写一种类似于 NET 3 5 中引入的其他方法的通用扩展方法 该方法将采用 IEnumerable 的嵌套 IEnumerable 等等 并将其展平为一个 IEnumera
  • 使用 PHP 检查 AllowOverride 值?

    无论如何 有没有使用PHP来检查的值AllowOverride太看看是否 htaccess会有什么影响吗 我不知道有什么干净 直接的方法可以做到这一点 如果您对要检查的文件夹具有 http 访问权限 则可以在 htaccess 文件中写入一
  • 使用 Spark-on-k8s-operator 在 Kubernetes 上运行 Pyspark 的依赖性问题

    我花了几天时间试图找出在 Kubernetes 上运行 Py Spark 时遇到的依赖问题 我正在使用k8s 操作符上的 Spark以及 Spark 的 Google Cloud 连接器 当我尝试提交我的 Spark 作业时without使
  • PYTHON:使用 python 变量更新多列

    我正在尝试编写一个有效的 mysql 语句 该语句允许我使用作为 python 变量提供的值来更新一条记录中的多个列 我的声明如下 db MySQLdb connect host localhost user user passwd pas
  • 将阵列的一小部分旋转 90 度

    我想旋转一个数组 但不是整个数组 而是它的一小部分 我有 512X512 数组 基本上它是一个位于中心 150 150 半径为 200 的高斯圆 现在我只想将数组的一小部分 以 150 150 为中心 半径为 100 旋转 90 度 最初我
  • 为什么我需要使用rails / ajax在远程链接上添加“data:{type:“script”}”

    在我的一个项目中 代码 link to add new me category path class btn btn success remote true 可以正确加载远程表单 但有些无法工作 浏览器没有执行响应代码 我需要添加 data
  • 如何在 PHP 中使用 IN 子句的查询中使用准备好的语句[重复]

    这个问题在这里已经有答案了 我需要做一个简单的查询 array of ids array poulate array of ids they don t come from another db but from Facebook so i
  • TcpListener 排队连接的速度比我清除连接的速度快

    据我了解 TcpListener一旦您致电 将对连接进行排队Start 每次你打电话AcceptTcpClient or BeginAcceptTcpClient 它将从队列中出列一项 如果我们负载测试我们的TcpListener通过一次向
  • 如何在 JSX 中使用函数

    我目前正在阅读 React 官方网站 在那里我遇到了这个问题 React 官网声明我们可以在 JSX 中使用函数代码 因此 我尝试了以下代码 但它不起作用 类 ABCD 扩展 React Component render return di
  • 如何在android studio中设置编译库。龙目岛

    帮助我在 Android Studio 的 build gradle 中设置 comile 依赖项 我的意思是它们不包含在最终的 APK 中 这个 build gradle 工作正常 但我不需要 lombok 运行时apk中的库 apply
  • 如何从时间字符串创建 DateInterval

    如果我有一个像 14 30 00 小时 分钟 秒 这样的时间格式字符串 如何从该字符串中获取 DateInterval 我可以获得一个日期时间 datetime DateTime createFromFormat H i s 14 30 0
  • 标准化直方图 y 轴大于 1

    有时 当我使用seaborn的displot函数创建直方图时 norm hist True y轴小于PDF的预期值1 其他时候它的值大于一 例如 如果我跑 sns set x np random randn 10000 ax sns dis
  • Homebrew:没有 smpeg 的公式

    我正在尝试使用 Python3 在 Mac OS 10 6 8 上安装 Pygame 我正在尽力遵循此处的说明 http florian berger de en articles installing pygame for python
  • 使用 PySerial 从 Arduino 到 Raspberry Pi 的串行接收在一段时间后停止

    我正在开发一个项目 其中我必须一次接收大约 25 个字符的数据 以便在 Raspberry Pi 中处理它 下面是生成一些我想从 Arduino 接收的数据的示例代码 char i 0 char a 0 char b 0 void setu