问题标签 [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 投票
5 回答
1050 浏览

c - 显示之前收到的 UART 值

对于熟悉 C 的任何人来说,这应该很容易回答。我想在 LCD 上显示变量的先前值(微控制器上的 UART (RS-232) 接收寄存器)。这是我当前的实现,它工作正常。但我想知道是否有办法在我的中断程序中花费更少的时间。目前,外设配置为在接收到 UART 馈送中的一个新字符后立即跳转到中断例程。建议任何人?

0 投票
2 回答
1119 浏览

pointers - 循环缓冲区指针异常

这是对这个问题的跟进:显示以前收到的 UART 值

在微控制器上实现循环缓冲区后,指针似乎有问题。

在 RS-232 上发送:ADE1234
接收(缓冲区 = 8):E24AE2 / E2AE24(在两者之间翻转) 接收(缓冲区 = 16):D234E1(跳过 A,因为它是一个同步字节)
接收(RX_BufSize = 32):DE1223 / DEE123 / DE1234 / DE12E1(随机翻转)
预期接收:DE1234

初始化

LCD 上显示的调试值

接收中断

来自源的函数

Detect_Cmd_RXD 每 1/256 秒调用一次。在此期间,UART 接收缓冲区中将至少发送 7 个值。

写入过程是否可能如此之快以至于它赶上了读取指针?除了更频繁地调用 Detect_Cmd_RXD 之外,我还能做些什么来解决这个问题?

0 投票
1 回答
2191 浏览

ipad - 通过 UART 进行 iPad 配件通信

我们为 iPad/iPhone 制造了一个新的配件,它应该将命令传输到 iPad。我们喜欢使用 UART(通过一种称为Lingo的 Apple 协议)。我的研究表明我只能使用 USB(30PIN 连接器)和自定义协议。

问题:

  • APP端有什么方法可以使用UART连接iPad配件吗?
  • 如果协议是在 UART 中实现的,我们应该能够将它移动到 USB,如果它不能通过 USB 对我的应用程序可用。

我的主要猜测是 UART 命令和访问是为 iPhone OS 保留的协议,对应用程序不可用。某些 UART 命令还包括音量和音频重新路由等设置,所以我想这是安全的。

0 投票
2 回答
1187 浏览

c - 未读取 uart 缓冲区

我正在尝试从 linux 上的 c 中的串行设备读取二进制数据。问题是,有时驱动程序的内部缓冲区中有字符,但轮询(使用 select(2))返回表明设备尚未准备好读取。

我已经阅读并重新阅读了 termios 的人和所有相关的人,并在互联网上进行了搜索。我相信我正确设置了所有标志(即 VTIME、VMIN)并取消设置 ICANON。我也尝试使用函数“tcmakeraw”,但它并没有解决问题。

你们对我该怎么做有什么想法吗?

提前致以亲切的问候和感谢 Yannay

0 投票
1 回答
2328 浏览

linux - UART 初始化:防止 UART 将 RTS 拉高

我正在为 Linux 上的 ARM AT91SAM9260 板编写 RS485 驱动程序。

当我初始化 UART 时,RTS 信号线变高 (1)。我想这将是并且应该是 RS232 操作模式下的标准行为。然而,在 RS485 模式下,这是不希望的。

我正在使用 arm-arch 部分提供的标准函数来初始化 UART。因此,重要的步骤是:

正如你所看到的

at91_set_B_periph(AT91_PIN_PC8, 0);

RTS 引脚上的上拉电阻未激活。

  • 为什么 UART 将 RTS 设置为高电平?仅仅因为这将是 RS232 模式下的标准行为?


  • UART 在明确设置操作模式之前保持静音不是更好的标准吗?

0 投票
1 回答
4488 浏览

linux - Linux UART驱动修改

我想修改我的 linux 内核 (2.6.32) UART 驱动程序。我正在使用 ttyS2 的标准 uart 驱动程序我不知道确切的文件。问题很简单,在传输过程中设置并保持一个 gpio 引脚为高电平,而在接收时它必须为低电平。

我应该参考哪些文件?并且任何关于从 uart 驱动程序中对 gpio 进行 bitbanging 的想法都是受欢迎的......

问候。

0 投票
1 回答
5533 浏览

c - C on ARM - 等待 UART 接收

我正在尝试修改一个函数以使其更适合我的目的;

上面的代码导致函数挂起,直到在串口 0 上接收到一个字符,然后返回它。我用这样的while循环来调用它;

所以现在我让它等到通过串行端口接收到回车,并且在此之前的每个字符都被复制到缓冲区中。现在我的问题是,我目前在读取数据时遇到了一些问题,我无法确定问题出在哪里,无论它无法正确识别回车或换行符,但它正在接收一些输出!我知道这一点,因为一旦完成,我就会将所有内容保存到文件中,但要做到这一点,我必须在 while 循环中设置 ai!=5 并读取 5 个字符。如果我执行到 20,它会再次挂起并且似乎没有读取任何其他内容(即使我通过 uart 发送数据)

有没有办法可以修改它以读取 X 时间,然后继续执行其余功能?

编辑:

编辑2:

好的,这是我编写的用于读取用户输入的函数;

它是这样称呼的;

它被称为很多,但这是我如何称呼它的一个例子。然后我将它输出到一个文件中,它可以 100% 的工作。

这可能有助于解释整个问题;我有一个带有无线模块的 ARM 板,连接到串行端口(RX 和 TX)。上面的 readInput 函数用于读取已远程登录到无线模块的用户的输入,并使 ARM 板能够读取用户的所有输入。我现在想要实现的是在对其执行命令后从无线模块读取输入。使用 printf 语句,我可以通过将命令放入语句来执行命令。我需要完成的是读取无线模块的输出,这是我遇到困难的地方。我得到了一些输出,但它非常有限,不是预期的,但它显然来自模块。

0 投票
3 回答
1044 浏览

avr-gcc - 无法从 USART 获取输入 - FreeRTOS - AT32UC3A0512

只是尝试使用 FreeRTOS。以下是我的设置 -

  1. 微控制器 - AT32UC3A0512
  2. 板 - EVK1105
  3. 使用 FreeRTOS
  4. 环境 - 带有 ASF 最新 2.3 框架的 AVR Studio 5

我刚刚从示例项目 FreeRTOS 创建了一个新项目。我目前正在检查 USART。运行示例项目时,我可以通过 USART 将字符从我的开发板传输到 PC,但是当我在我的 PC usart 终端程序(使用 Putty)上键入或输入内容时,我什么也看不到。任何人都可以建议可能出了什么问题吗?或者我是否需要更改当前示例代码中的代码以在我的终端程序上为 USART 获取输入和显示?

谢谢...

0 投票
1 回答
7007 浏览

linux - tty 驱动程序在读/写操作期间如何与 UART 驱动程序交互?

我正在修改/开发 SDIO UART 驱动程序。
并想知道:

tty 驱动程序在读/写操作期间如何与 UART 驱动程序交互?我对缓冲区管理感兴趣。

我在网上搜索,但没有找到必要的信息。
有人可以对此有所了解吗?

先感谢您。

0 投票
1 回答
715 浏览

linux - Linux 使用驱动程序内部的驱动程序

我正在尝试通过 RS232 串行接口从我的 linux 盒子连接到微控制器。

我已经编写了驱动程序并实现了 b/n pc 和微控制器协议,它使用内核中已经存在的 tty(/dev/ttyS0) 设备作为模块(例如,通过调用 open、close 等)。但是,当我尝试编译时,它说找不到打开、写入、读取等的引用...

如何仅使用驱动程序中的现有设备驱动程序?还有什么我需要包括的吗?

如果没有,我怎样才能从驱动程序中轻松使用串行端口?