问题标签 [uart]

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 投票
1 回答
15558 浏览

linux - termios.c_cflag 中的 CLOCAL 和 CRTSCTS 标志如何影响串行端口?

我想配置一个 UART 以在 Linux 中使用硬件流控制线 RTS 和 CTS。根据http://linux.die.net/man/3/termios,CRTSCTS 启用 RTS/CTS(硬件)流控制,CLOCAL 将串口配置为忽略调制解调器控制线。这两个标志似乎是矛盾的,你怎么能用 CRTSCTS 启用硬件流控制而忽略 CLOCAL 行?

0 投票
1 回答
976 浏览

com - FT232R USB IC,带直接访问 IO(无 UART)

我想创建一个使用 FT232R 通过 USB 直接访问 IO 的场景。更详细地说,场景如下:我想通过 FT232R USB 设备为 LIN 收发器 IC 供电。但是,FT232R 作为 USB 串行转换器输出 UART 信号,其中包括一个起始位和一个停止位。对我来说,要求没有这些开始和停止位,即使它们在 UART 协议中是标准化的。

我的问题:是否可以使用此设备的 bang 模式来避免开始/停止位并传输原始数据?那么,如何编写代码来做到这一点呢?如果没有,是否有任何 USB 收发器,必须通过 COM/驱动程序访问来满足我的要求?

非常感谢您的帮助!

0 投票
1 回答
499 浏览

uart - XBee Pro S1 - Nibo2 - 接收数据不流畅

我目前正在从事 ac 项目,在我的电脑上安装了 XBee Pro Series 1,允许我将数据发送到我的 nibo2 机器人,还连接了那个 xbee 模块。

将数据从 nibo2 机器人发送到我的电脑效果很好,并且没有任何数据丢失。

将数据从我的电脑发送到 nibo2 工作不正常:当我尝试在某个时间点发送 16 个字节时,只有前 8 个字节到达我的 nibo2。第二个 8 字节丢失。当我发送分成 8 个字节的数据并以可能 1s - 2s 的时间差发送它们时,它工作正常。

此处列出了您应该了解的可能有趣的事情:

XBee 数据表:http: //ftp1.digi.com/support/documentation/90000982_H.pdf

机器人使用的库(使用 uart0): http: //nibo.sourceforge.net/doc/html/

有没有人有想法或有人知道这个问题?是关于配置 xbee 模块的事情吗?中断问题?

非常感谢。

0 投票
1 回答
1944 浏览

c - 设置 UART 中断以在接收到字符时触发

我正在尝试设置一个 UART 中断以在 UART 屏幕上输入字符时触发。问题是我设置它的方式似乎在发送和接收时触发了中断。我已经阅读了数据表,它并没有真正说明它是否可以完成以及如何完成。它只是说串行端口的中断是可用的。这就是我设置UART的方式

有谁可能知道如何做到这一点?我正在使用 Keil 编译器和英飞凌 C509 数据表**链接已修复

谢谢

0 投票
2 回答
3159 浏览

c - UART ISR Tx Rx 架构

我把事情复杂化了吗?

我正在构建我的代码以通过 UART 从 8051 微型设备与外围设备通信。外设响应来自主机的命令,并且一次只能响应一个命令。这是一个简单的发送和接收协议。(tx1, rx1, tx2, rx2, tx3, rx3) 每个 TX 消息以 CR 结束,每个响应以 > 结束。在收到对最后一条消息的回复之前,我无法发送新消息。如果我启用该选项,响应也可以在开头回显原始 TX 消息(但这会导致更多流量)

一个示例消息是:

  • TX:你好
  • RX:世界!>

或使用回声选项...

  • TX:你好
  • RX:你好\r世界!>

选项 A 诸如 getHello 之类的函数将包含发送和接收。并行 ISR 例程将收集传入字节并在接收到“>”字符时抛出一个标志。

优点:

  • 一切都包含在一个功能中。
  • 更容易调试

缺点:

  • 这个函数是阻塞的,如果外设从不响应,可能会挂起,因此必须实现超时。
  • 消息不能乱序接收,必须串联(即tx1、rx1、tx2、rx2、tx3、rx3)

选项 B 采用并行方法。将创建两个单独的函数。一种用于发送消息,另一种用于在收到 ISR 的响应时进行顶点处理。

优点:

  • 可以处理乱序返回的并行消息,因为它依赖于 tx 消息的回显打印来确定如何解析它。(即,tx1、tx2、tx3、rx1、rx2、rx3)

缺点:

  • 调试相当困难
  • 产生多个线程
  • 很多额外的代码
  • 不值得,因为消息肯定会按顺序返回

现在,我正在做选项 B,但随着我继续这个项目,我开始觉得这变得过于复杂了。我很好奇你们是怎么想的。

谢谢!

0 投票
2 回答
7061 浏览

linux - 未为 uart 串行驱动程序创建 /dev/tty* 处的设备节点

我在嵌入式 Linux 中编写了一个简单的 UART 串​​行驱动程序,使用 mdev 规则运行 busybox。我在我的驱动程序代码中提供.dev_name了“ ”。ttyC2C

但是该节点正在创建

tty 的 mdev 规则是:

如何获取设备节点为/dev/ttyC2C

0 投票
1 回答
419 浏览

c# - COM 问题 - Stellaris uC

我正在尝试与 Stellaris uC 通信,但遇到了问题。uC 实际上是以波特率向 COM4 发送数据:115200,我可以在 Putty 中看到它。

但是,当我尝试使用此代码在 C# 中读取它时,我什么也得不到:

串行端口选项正确且事件未触发。

肿瘤坏死因子。

编辑:这是较短的版本,但仍然没有成功。

编辑2:

0 投票
1 回答
1160 浏览

linux - 在 Linux 中阻止 UART 串​​行端口上的 I/O 写操作

我正在尝试通过 RS-485 半双工串行线路与设备通信。当我向设备发送命令时,它会处理命令并在处理后立即回复。问题是我必须在发送命令后立即将我的 RS-485 芯片转为接收模式才能接收设备的回复。但是因为我的 UART 写功能是一个非阻塞 IO 操作,所以我无法知道什么时候将我的 RS-485 芯片变成接收模式。

如何对 UART 执行阻塞写入操作,除非所有字节都通过串行线路实际发送,否则该函数不会退出?

0 投票
0 回答
229 浏览

assembly - IRQ 在 LPC238 (Crossworks + GCC) 上无法正常工作

我目前正在使用 Crossworks ARM (2.1),我的 LPC2368 MCU 上的中断有一些问题。

两个操作过程(在 UART 示例中):

1)工作一:

  • 整个 uart 初始化和 IRQ 实现位于 main.c 文件中
  • 代码是使用 VECTORED_IRQ_INTERRUPTS 标志构建的,因为 Crossworks 需要它
  • 一切正常(回声测试仪正在响应)
  • 从 IRQ 退出后,cpu 将其模式更改为主管(它也设置了构建标志)这很酷并且可以工作..

2)不工作之一:

  • cpu 由位于除 main.c ((ProjDir)/SystemCtrl/) 之外的其他目录中的其他文件中的例程初始化
  • uart初始化函数设置在嵌套目录((ProjDir)/SystemCtrl/LPC/libuart)
  • 启动后一切正常。波特率很好,UART 已正确初始化

第一件坏事:当第一次收到数据时,IRQ被正确调用。但接收到的数据不同(即发送:0x31,接收:0x82)。

第二个坏事:即使接收到错误的数据,echo 也会向 PC 发送不同的值!(即发送:0x31,接收:0x82,回显将发送:0xFE)

第三个坏事:IRQ 正在退出并且 CPSR 中的 IRQ 模式仍然设置!I 标志未清除。IRQ 具有属性((interrupt(IRQ)))。并且仍然无法正常工作。

有人知道吗?我不知道出了什么问题。我什至更改了堆栈大小(我认为它可能在奇怪的空间中以某种方式丢失了)。嵌套目录如何破坏一切?它还使用干净的项目进行了测试,无需更改任何设置。

0 投票
5 回答
3169 浏览

c - 在C中的UART中接收未定义大小的消息

我正在为 LPC2148 编写自己的驱动程序,我想到了一个问题。如何在 UART 中接收未指定大小的消息?

唯一想到的两件事是: 1 - 配置看门狗并在时间用完时结束接收。2- 使得无论何时向其发送消息,都必须有消息结束字符。

在我看来,第一个选择似乎更好,但我想知道是否有人有更好的答案,我知道肯定有。

非常感谢你