问题标签 [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.
linux - termios.c_cflag 中的 CLOCAL 和 CRTSCTS 标志如何影响串行端口?
我想配置一个 UART 以在 Linux 中使用硬件流控制线 RTS 和 CTS。根据http://linux.die.net/man/3/termios,CRTSCTS 启用 RTS/CTS(硬件)流控制,CLOCAL 将串口配置为忽略调制解调器控制线。这两个标志似乎是矛盾的,你怎么能用 CRTSCTS 启用硬件流控制而忽略 CLOCAL 行?
com - FT232R USB IC,带直接访问 IO(无 UART)
我想创建一个使用 FT232R 通过 USB 直接访问 IO 的场景。更详细地说,场景如下:我想通过 FT232R USB 设备为 LIN 收发器 IC 供电。但是,FT232R 作为 USB 串行转换器输出 UART 信号,其中包括一个起始位和一个停止位。对我来说,要求没有这些开始和停止位,即使它们在 UART 协议中是标准化的。
我的问题:是否可以使用此设备的 bang 模式来避免开始/停止位并传输原始数据?那么,如何编写代码来做到这一点呢?如果没有,是否有任何 USB 收发器,必须通过 COM/驱动程序访问来满足我的要求?
非常感谢您的帮助!
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 模块的事情吗?中断问题?
非常感谢。
c - 设置 UART 中断以在接收到字符时触发
我正在尝试设置一个 UART 中断以在 UART 屏幕上输入字符时触发。问题是我设置它的方式似乎在发送和接收时触发了中断。我已经阅读了数据表,它并没有真正说明它是否可以完成以及如何完成。它只是说串行端口的中断是可用的。这就是我设置UART的方式
有谁可能知道如何做到这一点?我正在使用 Keil 编译器和英飞凌 C509 数据表**链接已修复
谢谢
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,但随着我继续这个项目,我开始觉得这变得过于复杂了。我很好奇你们是怎么想的。
谢谢!
linux - 未为 uart 串行驱动程序创建 /dev/tty* 处的设备节点
我在嵌入式 Linux 中编写了一个简单的 UART 串行驱动程序,使用 mdev 规则运行 busybox。我在我的驱动程序代码中提供.dev_name
了“ ”。ttyC2C
但是该节点正在创建
tty 的 mdev 规则是:
如何获取设备节点为/dev/ttyC2C
?
c# - COM 问题 - Stellaris uC
我正在尝试与 Stellaris uC 通信,但遇到了问题。uC 实际上是以波特率向 COM4 发送数据:115200,我可以在 Putty 中看到它。
但是,当我尝试使用此代码在 C# 中读取它时,我什么也得不到:
串行端口选项正确且事件未触发。
肿瘤坏死因子。
编辑:这是较短的版本,但仍然没有成功。
编辑2:
linux - 在 Linux 中阻止 UART 串行端口上的 I/O 写操作
我正在尝试通过 RS-485 半双工串行线路与设备通信。当我向设备发送命令时,它会处理命令并在处理后立即回复。问题是我必须在发送命令后立即将我的 RS-485 芯片转为接收模式才能接收设备的回复。但是因为我的 UART 写功能是一个非阻塞 IO 操作,所以我无法知道什么时候将我的 RS-485 芯片变成接收模式。
如何对 UART 执行阻塞写入操作,除非所有字节都通过串行线路实际发送,否则该函数不会退出?
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)))。并且仍然无法正常工作。
有人知道吗?我不知道出了什么问题。我什至更改了堆栈大小(我认为它可能在奇怪的空间中以某种方式丢失了)。嵌套目录如何破坏一切?它还使用干净的项目进行了测试,无需更改任何设置。
c - 在C中的UART中接收未定义大小的消息
我正在为 LPC2148 编写自己的驱动程序,我想到了一个问题。如何在 UART 中接收未指定大小的消息?
唯一想到的两件事是: 1 - 配置看门狗并在时间用完时结束接收。2- 使得无论何时向其发送消息,都必须有消息结束字符。
在我看来,第一个选择似乎更好,但我想知道是否有人有更好的答案,我知道肯定有。
非常感谢你