问题标签 [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.
c - 显示之前收到的 UART 值
对于熟悉 C 的任何人来说,这应该很容易回答。我想在 LCD 上显示变量的先前值(微控制器上的 UART (RS-232) 接收寄存器)。这是我当前的实现,它工作正常。但我想知道是否有办法在我的中断程序中花费更少的时间。目前,外设配置为在接收到 UART 馈送中的一个新字符后立即跳转到中断例程。建议任何人?
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 之外,我还能做些什么来解决这个问题?
ipad - 通过 UART 进行 iPad 配件通信
我们为 iPad/iPhone 制造了一个新的配件,它应该将命令传输到 iPad。我们喜欢使用 UART(通过一种称为Lingo的 Apple 协议)。我的研究表明我只能使用 USB(30PIN 连接器)和自定义协议。
问题:
- APP端有什么方法可以使用UART连接iPad配件吗?
- 如果协议是在 UART 中实现的,我们应该能够将它移动到 USB,如果它不能通过 USB 对我的应用程序可用。
我的主要猜测是 UART 命令和访问是为 iPhone OS 保留的协议,对应用程序不可用。某些 UART 命令还包括音量和音频重新路由等设置,所以我想这是安全的。
c - 未读取 uart 缓冲区
我正在尝试从 linux 上的 c 中的串行设备读取二进制数据。问题是,有时驱动程序的内部缓冲区中有字符,但轮询(使用 select(2))返回表明设备尚未准备好读取。
我已经阅读并重新阅读了 termios 的人和所有相关的人,并在互联网上进行了搜索。我相信我正确设置了所有标志(即 VTIME、VMIN)并取消设置 ICANON。我也尝试使用函数“tcmakeraw”,但它并没有解决问题。
你们对我该怎么做有什么想法吗?
提前致以亲切的问候和感谢 Yannay
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 在明确设置操作模式之前保持静音不是更好的标准吗?
linux - Linux UART驱动修改
我想修改我的 linux 内核 (2.6.32) UART 驱动程序。我正在使用 ttyS2 的标准 uart 驱动程序我不知道确切的文件。问题很简单,在传输过程中设置并保持一个 gpio 引脚为高电平,而在接收时它必须为低电平。
我应该参考哪些文件?并且任何关于从 uart 驱动程序中对 gpio 进行 bitbanging 的想法都是受欢迎的......
问候。
c - C on ARM - 等待 UART 接收
我正在尝试修改一个函数以使其更适合我的目的;
上面的代码导致函数挂起,直到在串口 0 上接收到一个字符,然后返回它。我用这样的while循环来调用它;
所以现在我让它等到通过串行端口接收到回车,并且在此之前的每个字符都被复制到缓冲区中。现在我的问题是,我目前在读取数据时遇到了一些问题,我无法确定问题出在哪里,无论它无法正确识别回车或换行符,但它正在接收一些输出!我知道这一点,因为一旦完成,我就会将所有内容保存到文件中,但要做到这一点,我必须在 while 循环中设置 ai!=5 并读取 5 个字符。如果我执行到 20,它会再次挂起并且似乎没有读取任何其他内容(即使我通过 uart 发送数据)
有没有办法可以修改它以读取 X 时间,然后继续执行其余功能?
编辑:
编辑2:
好的,这是我编写的用于读取用户输入的函数;
它是这样称呼的;
它被称为很多,但这是我如何称呼它的一个例子。然后我将它输出到一个文件中,它可以 100% 的工作。
这可能有助于解释整个问题;我有一个带有无线模块的 ARM 板,连接到串行端口(RX 和 TX)。上面的 readInput 函数用于读取已远程登录到无线模块的用户的输入,并使 ARM 板能够读取用户的所有输入。我现在想要实现的是在对其执行命令后从无线模块读取输入。使用 printf 语句,我可以通过将命令放入语句来执行命令。我需要完成的是读取无线模块的输出,这是我遇到困难的地方。我得到了一些输出,但它非常有限,不是预期的,但它显然来自模块。
avr-gcc - 无法从 USART 获取输入 - FreeRTOS - AT32UC3A0512
只是尝试使用 FreeRTOS。以下是我的设置 -
- 微控制器 - AT32UC3A0512
- 板 - EVK1105
- 使用 FreeRTOS
- 环境 - 带有 ASF 最新 2.3 框架的 AVR Studio 5
我刚刚从示例项目 FreeRTOS 创建了一个新项目。我目前正在检查 USART。运行示例项目时,我可以通过 USART 将字符从我的开发板传输到 PC,但是当我在我的 PC usart 终端程序(使用 Putty)上键入或输入内容时,我什么也看不到。任何人都可以建议可能出了什么问题吗?或者我是否需要更改当前示例代码中的代码以在我的终端程序上为 USART 获取输入和显示?
谢谢...
linux - tty 驱动程序在读/写操作期间如何与 UART 驱动程序交互?
我正在修改/开发 SDIO UART 驱动程序。
并想知道:
tty 驱动程序在读/写操作期间如何与 UART 驱动程序交互?我对缓冲区管理感兴趣。
我在网上搜索,但没有找到必要的信息。
有人可以对此有所了解吗?
先感谢您。
linux - Linux 使用驱动程序内部的驱动程序
我正在尝试通过 RS232 串行接口从我的 linux 盒子连接到微控制器。
我已经编写了驱动程序并实现了 b/n pc 和微控制器协议,它使用内核中已经存在的 tty(/dev/ttyS0) 设备作为模块(例如,通过调用 open、close 等)。但是,当我尝试编译时,它说找不到打开、写入、读取等的引用...
如何仅使用驱动程序中的现有设备驱动程序?还有什么我需要包括的吗?
如果没有,我怎样才能从驱动程序中轻松使用串行端口?