问题标签 [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.
pic - pic32 uart 问题
我们有一个系统,一组 PIC32 MCU 在共享的 UART 总线上加上几个 I/O,作为类似于芯片选择的握手。一主多从。从主机到从机的传输是直接的,并且进展顺利。从机到主机的响应信号通过一个 1K 电阻,主机侧有 10K 上拉电阻。如果没有选择,每个从机必须禁用其 UART,以免干扰其他从机的传输。主机始终处于活动状态,并允许两个从机通信序列之间有 400 us 的延迟。传输以 4 字节块进行。
我们构建的 5 个系统中有一个存在问题,其中一个从属设备的起始位不完整。大约 1/4 位宽的毛刺。当这个附加时,master master 无法识别块并超时传输。到目前为止,我们通过更换有故障的 MCU 解决了这个问题,但这是开发时的修复,不适合生产。
有人见过类似的东西吗?可能是什么问题?
我们将 pic32mx320F064H-80 用于主设备和从设备。
谢谢你。
embedded - 位被加扰
问题:我将一个值发送到 UART,而另一个 UART 上出现空值。
- - 细节 - -
这些都是 PIC 处理器(PIC24 和 PIC32)
它们都硬连线到印刷电路板上。
它们通过其中一个 UART 模块进行通信。
它们(表面上;根据文档)都配置为 115200 bps,8-N-1
没有握手,没有启用 CTS,没有启用 RTS;我只是把字节放在线上,然后它们就出来了。
(这些是简短的 4 字节命令和响应,非常适合)
PIC32 的频率为 80 MHz。
PIC24 的 F[cy] = 14745600
即,它是 14.7456 MHz
PIC24 发送四个字节(一个特定的命令序列)
当我在 UART 的中断服务程序中设置断点时,PIC32 显示空值,然后我看到在前四个断点上重复命中(PIC32 代码),并且我继续看到空值(因为 PIC24没有发送任何东西)
即,UART 似乎在没有原因的情况下重复产生中断
我没有在 PIC32 端编写代码,我每天都在学习它是如何工作的。
然后我让代码运行,我不可避免地会在一行上写着
当我到那的时候,
- 原因寄存器持有
0080181C
- EPC 寄存器持有
9D00F228
- SP寄存器持有
9F8FFFA0
这就像发条一样发生,所以我对不会停止的 __ISR 产生了怀疑。MpLab向我展示了这个......
我更仔细地查看了这些数字,我发现当时,如果我们将 100 (0x64) 加到 FFA0(SP 的底部 16 位),我们得到 0x10004,我猜这个数字是 4 太多了。
PIC 手册 DS61143E 第 50 页说该命名法意味着,SW Store Word Mem[Rs+offset> = Rt
其他专家告诉我原因寄存器告诉我 EXCCODE 位是 7,这是加载或存储时总线异常的代码。
或者,我在这里完全猜测(希望获得一些专家的知识)某些东西没有清除某些东西,我在 int 处理程序上遇到了无限递归。
所有这些都开始变得有意义了。
问题
有人可以建议像这样的 int 反复打击我的最常见原因吗?
有没有人看到来自 UART 的虚假 nuls 之间的任何共同关系,这可能以某种方式与这个无休止生成的 int 相关联?我什至走在正确的轨道上吗?
在您的回答中,请告诉我如何从 UART 确认 Int。我知道我是如何在 PIC24 中做到这一点的(我完全用 ASM 编写了该代码),但我不知道这是如何在 PIC32 上的 C 语言中完成的。组装会好的。我会内联它。我正在使用我没有在这里编写的代码,感谢您的回答
UART(在这种情况下为#1)会重复产生中断的最常见原因是什么?
gcc - 用于连接微控制器和 AT 调制解调器的 C 库
我正在开发一些嵌入式系统,我使用低端的uC,即Atmega128。我的系统还包括调制解调器,通过 AT 命令驱动。我试图寻找任何合适的 C 库(用于 GCC),但找不到。尽管我知道将“所有”可能的 AT 命令集放入 uC 内存中,因此拥有“通用”库是不合理的(整个操作我只需要大约 30 个命令),我只需要获得一些合适的(即轻量级,强大的) 控制机制,用于在 uC 中处理发送和接收的 UART 字符串。有人知道任何经过验证的库或功能吗?或者也许有人可以指出我一些好的资源/建议?
usb - 安卓手机USB口发送字符
我的 android 设备 mmx a89 ninja 手机没有主机控制器。我希望开发一个应用程序,它只会在我的设备的 USB 端口上发送我按下的字符的 ascii 值。
不root设备可以吗?
ascii 值需要以简单的 UART 格式发送。
起始位--->数据--->停止位
如果可以使用 USB 转串口转换器将其转换为 UART,则也可以使用普通 USB 格式
embedded - PIC32 UART 丢弃字节
问题
- 外部源发送这四个字节
0x2A, 0x42, 0x78, 0x25
- PIC32 UART 不生成 int
- 外部源再发送一个字节
- 然后PIC32 UART生成一个 int
- 在那个 int 中,只
0x25
出现上一次传输的字节 - 即,前三个消失
- 偶尔(可能有 5% 的时间)UART 确实会正确生成所有 4 个字节
[周五晚上调试结果]
我们编写了另一个 echo 例程;它只是读取它得到的内容并将其写回。
我们以发布模式构建它(根据此处另一个人的建议)
我编写了一个例程,将相同的号码发送 25 次,看看我会得到什么。
之后,我计算值并将其发送 25 次,然后循环。
结果附加在此消息的末尾。
我没有得到第一个空字节。基于各种因素,我现在不会担心。
在接下来的五轮比赛中,我正在完美地恢复一切
我会尝试包含所有相关的源代码,希望它不是文字墙。如果需要更多代码来理解这一点,请询问。
这是有问题的 UART 的初始化代码。我可以包括
这是处理这个特定 UART 的中断服务程序
这是我在通过“echo”系统运行字节时看到的数据;即,读取一,写入一的例程。
PIC-32 以 80 MHz 运行,UART 以 115200 bps 运行,所以我不担心速度。
c# - Win'7 UART 蓝牙在四千字节后静音
我有一个小型嵌入式系统,我用调试例程安装了它,通过蓝牙连接将完全相同的字节一遍又一遍地发送到 PC。
有问题的速度是 921600 bps
在成功接收到大约四千字节(给或取几百)后,我的应用程序不再从 Win7 中看到
我完全有信心在流从我的应用程序中消失后继续发送字节(即超过四千)
我非常怀疑 Windows 出于某种原因没有提供蓝牙接收的内容。
我可以满怀信心地说...
- 该应用程序确实正确显示了前四千个奇怪的字节
- 之后该应用程序不显示任何内容
- 外部盒子继续发送字节
我对 Win'7 的怀疑越来越深,因为
- 停止应用程序后,我的外部发射盒继续。
- 两分钟后,我停止了外接发射盒
- 那一刻,PC和小盒子都没有互动
- 两个系统都停止后,(几分钟)我重新启动了 PC 应用程序
- 没有传输字节,应用程序收到了 941 个字节,我真的不知道是从哪里来的
- 这些字节来自上一个会话(我一遍又一遍地发送单个字节 0x37,这就是我在数据流中看到的)
然后我们再次启动小盒子生成数据,并看到相同的行为:看到 4435 个字节,之后我们没有从 UART 获得任何字节,尽管在 921600 bps 有两分钟的字节泛滥。
这是接收线程
以防万一有人觉得它很重要,这里是 Write(bits) 例程
以前有没有人在装有 C# 应用程序的 Win7 机器上经历过蓝牙字节消失?
任何人都可以看到可能导致这种情况的明显(或晦涩)错误吗?
python - PySerial 可以读但不能写
我正在尝试使用 PySerial 连接到 FTDI FT232R 芯片。我已验证与我的 RealTerm 的通信,并且使用 RealTerm 可以发送和接收数据。但是,我在 Python 中的实现只能接收数据。
我正在尝试使用这一行编写:
c# - USB UART 速度错误
PC 上的 GUI 向嵌入式系统发送一组字节。
- 蓝牙适配器,一切正常
- USB线,都错了。
设备是 FTDI USB TTL 串行电缆
我们需要一个可预测的速度。我从 PC 发送了一件东西,但我在嵌入式系统的 UART(接收缓冲区)中看到了一个0x00
或一个0x80
字节。
这是发送字节的 C# 语句...
115200 有效,但速度不够快。
我需要让它看起来像一个 921600 bps 的信号。460800 bps 可能会让我通过;也许。我们在嵌入式系统的这个端口上使用流控制(CTS/RTS)。
有没有办法用 C# 让 UART 达到其中一种速度?如何 ?
uart - XBEE S1 模块的配置
我有两个 Xbee 系列 1 模块。我想将一台配置为发送器,一台配置为接收器。有人可以推荐一个好的网站或教程链接来做同样的事情吗?任何帮助,将不胜感激。
提前致谢。
c# - 数据:一个大块,还是一堆小块?
我目前通过蓝牙连接器发送 128 包 64 字节。
这来自嵌入式系统,并交付给 C# GUI,该 GUI 以图形方式显示数据。我正在嵌入式系统上编写代码。我没有在 GUI 上编写代码;但我很确定它为 UART 的东西和图形的东西使用了多个线程。每个样本的长度为 64 个字节。
我们现在要将 USB 添加到可用数据路径的选项中。(目前我们有蓝牙和 UART)。
我可以复制该方案并发送同一组 128 个 64 字节的 blob。
我还可以重新排列数据(我认为)并一次发送一个 8,192 字节的 blob。
无论哪种方式都需要我做大量的工作。
问题:单个更大的 blob 是否会提高吞吐量?还是我应该坚持使用一大堆较小的斑点,让所有线程都有时间完成他们的家务活?