标签: serial-communication

波特率和比特率有什么区别?

我真的很难理解差异.有人说他们是一样的,而另一些人说有一点点差别.究竟有什么区别?如果你用一些比喻来解释,我希望如此.

microcontroller serial-communication bitrate uart baud-rate

60
推荐指数
5
解决办法
12万
查看次数

收听正在使用的串行端口

我正在处理一些使用RS232与外围设备通信的遗留系统.我对COM接口的经验不是很熟悉.我有一些代码可以打开和使用COM端口,但它无法打开其他应用程序使用的端口.我需要对数据包进行黑盒子处理,以便我们可以使用相同的协议进行更新通信.

有没有办法将"中间人"传入的数据包发送到开放的COM端口并检测正在发送的数据包?我正在使用.NET,但我对任何类型的解决方案都持开放态度.

(我发现了这个,但我不认为这对我有用.)

.net serial-communication

18
推荐指数
2
解决办法
2万
查看次数

Android USB主机通讯

我正在开发一个利用Android 3.2中的USB Host功能的项目.一般来说,我在USB /串行通信方面缺乏令人遗憾的缺乏知识和才能.我也无法找到任何我需要做的好示例代码.

我需要从USB通信设备上读取.
例如:当我通过Putty(在我的电脑上)连接时,我输入:

>GO
Run Code Online (Sandbox Code Playgroud)

设备开始为我喷出数据.俯仰/滚动/温度/校验.

例如:

$R1.217P-0.986T26.3*60
$R1.217P-0.986T26.3*60
$R1.217P-0.987T26.3*61
$R1.217P-0.986T26.3*60
$R1.217P-0.985T26.3*63
Run Code Online (Sandbox Code Playgroud)

我可以从Android设备发送初始'GO'命令,此时我收到'GO'的回音.

然后在任何后续读取上没有别的.

我该怎么做:1)发送'go'命令.2)读入结果数据流.

我正在使用的USB设备具有以下接口(端点).

设备类别:通讯设备(0x2)

接口:

接口#0类:通信设备(0x2)端点#0方向:入站(0x80)类型:中断(0x3)轮询间隔:255最大数据包大小:32属性:000000011

接口#1类:通信设备类(CDC)(0xa)端点#0地址:129编号:1方向:入站(0x80)类型:批量(0x2)轮询间隔(0)最大数据包大小:32属性:000000010

端点#1地址:2编号:2方向:出站(0x0)类型:批量(0x2)轮询间隔(0)最大数据包大小:32属性:000000010

我能够处理权限,连接到设备,找到正确的接口并分配端点.我只是想弄清楚使用哪种技术发送初始命令读取随后的数据.我尝试了bulkTransfer和controlTransfer的不同组合,没有运气.

谢谢.

我正在使用界面#1,如下所示:

public AcmDevice(UsbDeviceConnection usbDeviceConnection, UsbInterface usbInterface) {
    Preconditions.checkState(usbDeviceConnection.claimInterface(usbInterface, true));
    this.usbDeviceConnection = usbDeviceConnection;

    UsbEndpoint epOut = null;
    UsbEndpoint epIn = null;
    // look for our bulk endpoints
    for (int i = 0; i < usbInterface.getEndpointCount(); i++) {
      UsbEndpoint ep = usbInterface.getEndpoint(i);
     Log.d(TAG, "EP " + i + ": " + ep.getType());
      if (ep.getType() == UsbConstants.USB_ENDPOINT_XFER_BULK) { …
Run Code Online (Sandbox Code Playgroud)

io usb android serial-communication

16
推荐指数
1
解决办法
1万
查看次数

如何在iOS 5.0.1中打开Dock连接器的串行端口

我可以用比iOs 5更低的版本打开iPhone/iPad的串口

open("/dev/tty.iap", O_RDWR | O_NOCTTY | O_ASYNC))

但我在iOS 5中收到错误"操作不允许".

(我使用串行编程来通信附件和iPhone)

有没有人对此有所了解.

谢谢.

iphone serial-communication ios5

13
推荐指数
1
解决办法
1893
查看次数

如何使用USB从Android向Windows发送消息

我是Android上的一个完整的菜鸟,只是在按钮激活的基本(1或2行)活动的水平上,但我想创建一个非常简单的应用程序,当我点击应用程序图标时,它会触发并忘记消息到我的Windows 8 PC上的监听服务器.手机通过USB线连接为简单的媒体设备,无需Kies.

我可以得到一个消息框,并说消息已发送.我需要知道要使用哪种通信通道,例如COM端口或什么,以及如何通过Android发送数据.在Windows方面,一旦我建立了沟通方式,我就能帮助自己.

usb android serial-communication

12
推荐指数
1
解决办法
8032
查看次数

"DSR已开启;请勿发送DTR"错误

当我将笔记本电脑连接到我的Android手机时,电脑远离我这个错误:

1827    Data Router             usb connection is true
1827    Data Router             DSR is on Don't send DTR on
Run Code Online (Sandbox Code Playgroud)

我的手机是带有Android 4.03的Galaxy II.

根据我的搜索:

DSR=Data Set Ready    DCE (Data Carrier Detect) is ready to receive commands or data.
DTR=Data Terminal Ready  Indicates presence of DTE to DCE.
Run Code Online (Sandbox Code Playgroud)

android serial-communication

10
推荐指数
1
解决办法
3879
查看次数

串行编程RS485

我的任务是通过RS485 2线系统实现ModBus协议.(实际上它是三根线,A/B和GND).虽然ModBus不是重点,但是之前的步骤......界面上的简单I/O.

我正在使用FTDI USB-RS485转换器将Linux主机(不可互换)连接到Windows主机(可与其他Linux主机互换,但我想避免这种情况)

编码应该是19200,8,n,1.但它似乎不起作用.

我没有准确的代码,但在Linux上我这样做:

 int fd = open("/dev/ttyS3", O_RDWR | O_CTTY);
 if(fd == -1) return "Error while opening the port";
Run Code Online (Sandbox Code Playgroud)

接下来,我配置端口.

struct termios tty;

tcgetattr(fd, &tty);

cfsetispeed(&tty, B19200);
cfsetospeed(&tty, B19200);

tty.c_cflag  = CS8;              //Empties the cflags and sets the character width.
tty.c_cflag |= (CLOCAL | CREAD); //Sets 'recommended' options.

tty.c_lflag  = 0;
tty.c_iflag  = 0;
tty.c_oflag  = 0;

tcgetattr(fd, TCSANOW, &tty);
Run Code Online (Sandbox Code Playgroud)

奇偶校验和流量控制目前尚未规划,因为最终结果将连接到低级别的电路板,我需要自己处理信号.此外,没有任何电线,这将允许"不受约束的通信".(毕竟我不希望XON/XOFF字符限制我可以传输的字节范围)

所有这些功能都能正常运行并设置数据.

在Windows上,我打开这样的串口:

DCB SP;
HANDLE hSerial = CreateFile("COM6", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); …
Run Code Online (Sandbox Code Playgroud)

c c++ serial-communication rs485 baud-rate

10
推荐指数
1
解决办法
1万
查看次数

使用 .Net Core 3.0 访问 SerialPort 类

我正在启动一个新的 .NET Core 3.0 项目,我需要在其中访问 System.IO.Ports.SerialPort 类。我在课程中阅读的文档表明它适用于 .NET Core 3(请参阅https://docs.microsoft.com/en-us/dotnet/api/system.io.ports.serialport?的底部?视图=netcore-3.0)。但是,当我向我的类添加 using 语句时,它无法解析 System.IO.Ports。是否需要执行一些额外的步骤来引用 Windows 桌面上运行的 .NET Core 3.0 程序的 SerialPort 类?

c# serial-port serial-communication .net-core .net-core-3.0

10
推荐指数
3
解决办法
1万
查看次数

使用C中的Modbus创建一个简单的客户端/服务器

我目前正在开发一个允许不同自动化进行通信的项目.为此,我想创建一个客户端和服务器,使用modbus协议进行通信.我不确定我现在是否想要使用ModBus/TCP,ModBus/RTU或ModBus/ASCII.

我在C中搜索了客户端/服务器示例,我可以找到库,但没有简单的通信示例.我想从头开始,所以库不是我想要的.

我要的是,如果有人能给我一个用C语言编写的简单代码用于客户端和/或使用Modbus进行通信的服务器,因为我不确定我将使用任何类型的Modbus将是一个很大的帮助(RTU/TCP/ASCII).

越简单越好,我希望代码演示的是,例如:对服务器的初始化,请求,答案,关闭连接.

非常感谢您的宝贵时间.

c network-programming modbus serial-communication modbus-tcp

9
推荐指数
1
解决办法
3万
查看次数

在/dev/tty.usbserial与/dev/cu.usbserial之间进行选择

PL2303串行USB设备配置为仅接收数据.这里有tty与cu的解释:

MacOS:/dev/tty.*和/dev/cu.*之间有什么区别?

话虽这么说,在配置数据收集软件时,必须选择/dev/tty.usbserial OR /dev/cu.usbserial.我想了解选择tty或cu的事实和决策思路.

macos serial-port serial-communication

9
推荐指数
1
解决办法
6552
查看次数