问题标签 [serial-communication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1568 浏览

c# - C# 串行通信 - 接收到的数据丢失

由于收集器数组被覆盖而不是附加,我的 C# 应用程序中接收到的数据丢失了。

在此示例pUartData_c中,每次接收到新数据时都会被覆盖。在某些系统上,这不是问题,因为数据来得足够快。但是,在其他系统上,接收缓冲区中的数据并不完整。如何将接收到pUartData_c的数据附加到,而不是覆盖它。我正在使用 Microsoft Visual C# 2008 Express Edition。谢谢。

0 投票
1 回答
329 浏览

c# - C# 应用程序中未传输的串行数据

我有一个 C# 应用程序,其中串行(COM1)数据似乎有时无法传输。以下是我的代码的简化片段(已删除对 textBox 写入的调用):

奇怪的是,当端口配置为 115.2Kbps 时,同样的代码工作得很好。但是,当以 9600bps 运行时,该代码应该传输的数据似乎没有被传输。我已经通过监视远程设备上的接收标志来验证这一点。try 语句中不会抛出异常。我应该做些什么(刷新等)来确保数据被传输?您可能有的任何想法或建议将不胜感激。我正在使用 Microsoft Visual C# 2008 Express Edition。谢谢。

0 投票
2 回答
1457 浏览

avr - 使用 USART 将 avr atmega32 连接到移位寄存器?

我想通过 TXD 引脚使用 USART 将 ATMEGA32 微控制器连接到移位寄存器,然后移位寄存器对接收到的数据执行串行到并行转换。但如您所知,移位寄存器需要时钟,此时钟通过微控制器通过 XCK 引脚以波特率频率馈送(此处 USART 充当主同步时钟发生器)。我的问题是我不知道如何从 XCK 中获取这些时钟信号,那么该怎么做呢???

谢谢

0 投票
1 回答
4220 浏览

c# - 如何使用 C# 监听多个串口

我正在使用Noah Coad在 C# 中简单地使用串行 COM,并且我的机器上有可用端口,即 COM1、COM2、COM6、COM7、COM8、COM9、COM10、COM11、COM12、COM13,并且我使用 COM6、COM7、COM8 , COM9, COM10, COM11, COM12 与 ZyXEL Omni 56K 调制解调器。我将这七个端口与七个调制解调器一起使用。

有客户可以通过这些调制解调器获得答案。我使用 mscomm.ocx 来监听 COM 端口。我的应用程序运行成功,但有时一个调制解调器正在处理 50-100 个请求并应答,然后它停止工作,我的客户端因为没有从服务器获得应答(使用 COM 端口调制解调器)而超时。首先它得到“RING”,然后得到“CONNECT 1200/V.22b 2400/NONE”,然后得到我客户的原始包,我处理这个包并向客户提供答案。

我使用七个 EXE 文件来打开和监听 COM 端口,因为当我使用一个 EXE 文件时,我不会同时处理。我知道我必须使用线程,但我不知道如何。

我怎样才能同时收听七个 COM 端口并毫无问题地完成我的工作?我总是希望我的应用程序正常工作并同时回复所有客户。这是我的代码:

0 投票
2 回答
1680 浏览

java - 使用 RXTX 同步 java 串行端口连接

我有一个 Java 程序,它不断地在串行端口上侦听某种格式的消息。当发送方应用程序不发送消息时,它会以以下格式发送心跳消息:

  • 字节 1:1
  • 字节 2:0xFE
  • 字节 3:0xED
  • 字节 4-255: 0

如果接收方应用程序在发送方之前启动,则一切正常,但是,如果发送方一直在发送心跳,则几乎可以肯定接收方在启动时将在心跳消息中间开始监听(这是一个问题因为我读取了 255 个字节的块,因为每条消息都是 Reed-Solomon 编码的)。我写了一个同步函数,它是一个简单的状态机。它一次读取 1 个字节,条件如下:

  • 如果我只是读到一个 1: 切换到 NEW_MESSAGE 状态。

  • 如果我只是读取 0xFE:切换到 POTENTIAL_HEARTBEAT 状态。

  • 如果我只是读到一个 0xED: 切换到 HEARTBEAT 状态

进行了相关检查以确保这些状态不会乱序到达,一旦我达到 HEARTBEAT 状态,我会读取剩余的 252 个 0 并假设接收器已同步。在到目前为止的测试中,尽管发送了正确的字节以有效地触发同步,但该同步器仍无法正常工作。我的问题是:有没有更好的方法来同步串行通信,因为我真的一点也不喜欢我的方法。

0 投票
3 回答
3100 浏览

common-lisp - common lisp中的串口通信

Windows 上的 Common Lisp 中是否有用于串行端口通信的库?

0 投票
1 回答
76 浏览

c# - 在两个线程中访问串行连接状态

我正在尝试设置另一个线程,该线程当前检查被引用对象的状态。

主线程是运行程序并处理串行连接状态的线程。

第二个线程需要访问连接状态才能继续从缓冲区发送和接收命令。

这可能吗?

0 投票
5 回答
1267 浏览

c - 如何使用串行通信通过 PC 控制多个机器人?

我想用我的笔记本电脑控制多个机器人。机器人没有智能,它们将传感器值发送到 PC,PC 计算传感器值并将结果发送回机器人。(使用 PC 集中控制机器人)。

机器人使用 Zigbee mudule 通过串行通信与 PC 进行通信。

问题:如何制作和发送结构(来自机器人),例如 {sen1, sen2,sen3..,robot id},其中 sen1, sen2.. 是传感器值,机器人 id 用于识别特定机器人。编辑后.....我用于发送传感器的代码就像。

然后一一发送传感器值

在 PC 端读取缓冲区中的这些值

只有一个机器人时这工作正常,现在我们有多个机器人并且每个机器人都使用上述功能发送数据,我在 PC 端获得所有机器人的混合传感器值。一种解决方案是制作我上面提到的结构并将其发送到 PC。这就是我想问的“如何制作和发送这样的结构”抱歉之前没有正确地提出问题。

谢谢...

0 投票
1 回答
7384 浏览

ftp - 使用什么串行文件传输协议?

我正在寻找有关通过串行线路使用的女巫文件传输协议的一些输入。我希望能够通过串行线路(RS232)双向传输最大 200 Mb 大小的文件,但只有一台机器需要能够启动 get/put(想想主从)。

该协议还需要:

  • 易于/易于实现,因为我需要自己编写客户端和服务器(有限的嵌入式硬件)
  • 相当健壮,故障检查/恢复等
  • 至少有点标准化,以防我需要让第三方在其他硬件上实现它

克米特?TFTP?最简单的家酿?你怎么看?

0 投票
1 回答
3287 浏览

winapi - Win32 API:ReadFile 未超时

我正在编写一些代码来与一个硬件接口。硬件通过 USB 连接到 PC,设备内部带有 USB 到串行转换器(它在 Windows 中显示为 COM 端口设备)。

我遇到了 Win32 API ReadFile 系统调用的问题。我似乎无法让它像宣传的那样工作。我已经这样设置了 COMMTIMEOUTS 结构:

根据 Win32 API 文档,它说:

读取间隔超时

两个字节到达通信线路之间允许经过的最长时间,以毫秒为单位。在 ReadFile 操作期间,时间段从接收到第一个字节开始。如果任意两个字节到达的时间间隔超过此数量,则ReadFile操作完成并返回任何缓冲数据。零值表示不使用间隔超时。

MAXDWORD 值与 ReadTotalTimeoutConstantReadTotalTimeoutMultiplier成员的零值相结合,指定读取操作将立即返回已收到的字节,即使没有收到任何字节。

我发送的命令应该返回一个单字节整数。大多数时候,设备接收到命令并返回适当的值。然而,有时它似乎没有返回值并且 ReadFile() 会阻塞,直到收到更多字节(例如,通过按下设备上的按钮)。一旦按下按钮,就会收到我期望的初始整数响应以及按钮按下代码。根据 MSDN 文档,虽然这不是我对设备本身所期望的行为,但我更关心 ReadFile() 在不应该出现的情况下阻塞。ReadFile() 在这里阻塞有补救措施吗?