Articles of 串行端口

如何在Linux中接收传入的短信通知?

我在Windows机器上编写了一个D-Link GSM调制解调器来发送和接收短信,用于testing我使用的超级terminal。 在Windows中,连接pipe理器启动COMx端口,调制解调器使用一个可以发送短信的未列出的COMx端口,通过一个列出的NMEA端口,我接收到来电短信,如+ CMTI:“ME”,11或RING + CLIP: XXXXXXXXXXXX 我成功地解释了这个消息,并在Windows中将其编程为我的需求。 在linux(Fedora)中尝试相同的操作时,我看到调制解调器将/ dev / ttyUSB0和/ dev / ttyUSB1初始化为两个新识别的设备。 我使用minicom来设置设备端口并将AT命令传递给相同的端口。 在两个设备(/ dev / ttyUSB0和/ dev / ttyUSB1)中,我都没有收到未经请求的AT结果代码,如+ CMTI指示,只要我期待新的SMS。 仅供参考我已经根据手册和其他几种组合设置了CNMI设置。 奇怪的是,我可以看到RING时,我打电话,而不是+ CLIP:< callerinfo >。 同样,我没有得到++ PSBEARER:XX,Y或+ CMTI:“我”,XX 唯一的解决办法是定期轮询UNREAD消息,这通常是一个糟糕的devise。 请告诉我,如果我在configuration方面做错了什么,我应该改变一些东西,除了这些吗?

串口二进制传输改变回车

我一直在尝试在C上实现一个原始的串行文件传输协议,我遇到了一个非常奇怪的问题,我似乎无法find在线解决scheme。 我设法通过串口传输二进制数据并接收它,但是在这个过程中,所有“0D”字节都被转换为“0A”。 以下是我的代码。 #include <stdlib.h> #include <stdio.h> /* Standard input/output definitions */ #include <string.h> /* String function definitions */ #include <unistd.h> /* UNIX standard function definitions */ #include <fcntl.h> /* File control definitions */ #include <errno.h> /* Error number definitions */ #include <signal.h> #include <sys/ioctl.h> #include <termios.h> //eventually plan to set up a proper communication […]

从USB串口设备读取二进制stream

我正在为华为e177调制解调器chan_dongle的一个补丁工作,它有单向audio问题。 为了debugging目的,我决定编写一个外部testing用例来读取和写入调制解调器的audio,但是我无法在调制解调器被安装后在任何串行文件中接收audiostream。 我使用minicom发出命令,我使用相关的AT命令接听来电,但是没有字节stream到达任何文件。 我收到的唯一的输出是在/dev/ttyUSB0 AT命令。 我正试图捕捉audio: cat /dev/ttyUSB1 我也尝试修改terminal设置,然后阅读 stty -F /dev/ttyUSB1 115200 cs8 -cstopb -parenb -cooked min 1 time 0 有没有额外的步骤,我在这里失踪? 谢谢。

在Ubuntu 12.04中使用USB来串行 – 缺less/ dev / ttyUSB0

我正在尝试将一个usb串行适配器连接到Ubuntu 12.04(在VM上)。 出于某种原因,它没有/ dev条目。 我尝试了几个不同制造商的适配器 – 没有成功。 另外,我有一个连接适配器的10.04 VM,它立即出现在/ dev / ttyUSB0中 我不是一个非常熟练的Linux用户。 我需要安装某种驱动程序吗?

奇怪(py)串口linux损坏

我有一个基于Atmel SAMA5D36的Linux SBC。 我有另一个设备通过/ dev / ttyS2通过TTL线(115200 8N1)连接到它。 使用pyserial,我有一个相当高的带宽查询/响应与该设备的谈话。 定期(至less每分钟一次),我看到从另一个设备返回的date非常可重复的损坏。 如果是用类似的文字回应 "123456" (ascii character values) 它将删除一个字符,并在以下字符后添加字符0: "13\x00456" 希望这是明确的。 它会下降2,下一个字符是预期的,一个字符0跟着,然后恢复正常。 我正在使用内核4.1.10。 通过一些debugging语句,我敢肯定,这是不是在我的Python循环中发生,因为0显示在read()缓冲区的随机点。 我也已经勾上了一个范围,并validation了电线没有进行这种腐败。 我正在寻找一个答案,可以让我在正确的方向弄清楚为什么会发生这种情况。 CPU负载看起来似乎增加了频率(例如,当我为连接的BLE适配器执行一堆DBUSstream量时)。

Ruby – 以跨平台的方式从串口获取USB VID / PID

我正在写一个Ruby的gem,它将通过USB串口通信。 我需要处理几种不同的通信格式,格式是使用PID / VID值的组合来确定的。 我希望gem能够跨平台(Linux / Mac / Windows),但是我只会selectLinux和Mac。 Ruby中使用最less数量的可移植方式来可靠地检测串口的USB PID / VID信息是什么?

在Linux上共享串行端口

我正在使用Raspberry Pi作为一个需要能够写入和读取串行端口的项目,但是来自不同的程序。 程序A需要能够从外设A正在发送数据的串口读取数据。 程序B需要将数据写入外设B正在监听的串口(参考,此时程序A是GPSD,程序B是由我写的)。 程序A永远不需要写,而且B永远不需要读。 两个程序是否可以同时访问端口? 如果没有,是否可以编写一个程序来创build两个设备节点(将/dev/ttyAMA分割成类似/dev/ttyAMA_1和/dev/ttyAMA_2 ,或许? 提前感谢任何帮助! -马修

如何在python的串口上写ttyUSB0会解释命令?

我已经通过USB连接了Telegesis ZigBee模块(ETRX3 USB记忆棒)的树莓派B +。 使用命令: debian:~# stty -F /dev/ttyUSB0 -raw ispeed 19200 ospeed 19200 debian:~# cat < /dev/ttyUSB0 & debian:~# echo "ATI" > /dev/ttyUSB0 ZigBee模块执行ATI命令,我可以看到正确的输出: Telegesis ETRX357 R308C OK 我想用python脚本做同样的事情。 我用代码写了python脚本: #!/usr/bin/env python # based on tutorials: # http://www.roman10.net/serial-port-communication-in-python/ # http://www.brettdangerfield.com/post/raspberrypi_tempature_monitor_project/ import serial, time SERIALPORT = "/dev/ttyUSB0" BAUDRATE = 19200 ser = serial.Serial(SERIALPORT, BAUDRATE) ser.bytesize […]

使用Python,如何在Linux上创build虚拟串行端口?

我有两个python程序需要通过pySerial API从相同的串行端口读取。 据我所知,你不能有两个程序从同一串口读取。 所以我打算做的是从一个物理串口读取一个python程序,然后将它从串口收到的EXACT数据复制到虚拟串口,其他python程序可以通过pySerial API读取它。 在将使用pySerial的两个python progarms中,只有其中一个会回应任何事情。 任何想法如何做到这一点?

为什么在Linux上使用RS-232时CTRL + C不起作用?

首先,我不知道这应该留在SO还是去SU:你告诉我。 解决scheme可能与编程有关。 我正在embedded式设备上执行Linux,并使用RS-232 @ 9600 bauds与它进行通信。 一切工作正常使用Windows上的PuTTY:我有一个shell,可以input和执行命令。 问题是:当我启动一个命令,我不能CTRL + C。 例如,当ping一些机器时,ping进入一个无限循环,我不能用CTRL + C来停止它。 然而,在Bash提示符下,CTRL + C工作并进入下一行(所以被传送)。 我也注意到当我在运行一个命令的时候CTRL + C的时候terminal正在显示^C 通过Telnet连接时,CTRL + C可以在任何地方正常工作。 我尝试使用PuTTY的“特殊命令”rest,但它不工作。 我也尝试了不同的terminal模拟器,同样的问题。 所以我想这个问题是与内核有关的。 有什么我可以看看这个? 编辑 :我正在运行BusyBox v1.13.2。 stty -a (RS-232)的输出是: speed 9600 baud; rows 24; columns 80; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol […]