问题标签 [usart]

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 回答
654 浏览

windows - 从 USART 读取数据

我正在编写一个 ARM Cortex M3。我在 USART 端口上运行标准输出功能。我应该如何在我的 Windows 7 电脑上监控我的主板通过 USART 发送的数据?我应该使用标准的“USART 数据包嗅探器”吗?

0 投票
1 回答
1335 浏览

timer - AVR Butterfly - 内部振荡器校准后的定时器重用

我正在根据 AVR 提供的示例代码(参见下面的代码)校准 AVR Butterfly 内部振荡器,以便能够使用 USART。由于我还想使用两个定时器控制的伺服电机,我想知道在校准过程之后是否可以重用 16 位定时器 1 - 我尝试重置 TCCR1A/B 但它没有成功(代码也在下面) . 我希望你能帮我解决这个问题。

0 投票
1 回答
1540 浏览

c - 使用 set_usart_base((void *)) EVK1105 dev 时函数的隐式声明。木板。爱特梅尔

我刚开始使用 evk1105 dev.board。我需要将 printf() 重定向到 usart。我有以下代码(evk1105 的编辑 usart 示例):

添加 set_usart_base 时,我在implicit declaration of function 'set_usart_base' 此处找到以下编译错误 set_usart_base:avrfreaks.net

关于我做错了什么的任何提示?

0 投票
1 回答
2347 浏览

bluetooth - 从蓝牙设备从 pic18f4525 上的 RCREG 读取数据

我有一个项目,我试图通过蓝牙设备将数据从安卓手机发送到 pic18f4525。目前,我只是想让图片识别像“A”这样的简单字母。

据我了解,当 pic 通过 PORTC.7(RX 引脚)接收数据时,它会将 8 位信息存储到 RCREG 寄存器中,然后我要做的就是读取数据。我知道图片正在接收数据,因为正在设置接收标志。此外,我将示波器连接到图片的接收引脚,它正在接收正确的 01 序列。

我的问题是,我如何读取 RCREG 寄存器来访问信息?据我所知,我可以只使用 usart.h 中的 ReadUSART 但是这个头文件不会为我编译,所以我试图在没有那个头文件的情况下访问这些数据。有没有办法做到这一点?我试过直接存储数据(即值 = RCREG),我可以“读取”寄存器(接收标志被重置,所以我知道我正在读取它)但无论我做什么,图片总是认为该值为 0xFF发送。

我正在使用带有 ICD2 和 CC8E 编译器的 MPLAB 8.85 版。任何有关如何读取数据的帮助将不胜感激。我还完全阅读了在图片上使用 usart 的数据表,阅读了编译器手册,并在这个主题上进行了多次搜索,但无济于事。

谢谢你的帮助。

更新:

完毕!!!在又搞砸了几个小时后,我终于让它工作了。这实际上是一个波特率问题。谢谢你的帮助!

0 投票
1 回答
2017 浏览

serial-port - PIC18f4620 在 SDCC 中接收 usart

我正在尝试实现PC(linux)与用于rs232的PIC18F4620的通信。传输(PIC -> 到 PC 很好)。但是,当我尝试将某些东西从 PC 传递到 PIC 时,PIR1bits.RCIF 标志永远不会设置,并且不会发生中断。

那是我的(PIC18f)代码(一个版本):

在 PC 中我做了:

所以,PIC到PC是可以的。但是当我尝试时:

回声“某事”> /dev/ttyUSB0

或者

或者即使我编写代码将 /dev/ttyUSB0 作为文件打开并写入,使用 python 串行模块,也没有任何反应。

0 投票
5 回答
57305 浏览

c - USART接收中断stm32

我在处理 STM32 和 USART 中断的地图上进行开发。配置 USART1 并启用接收中断后。没有检测到接收中断的问题???

0 投票
1 回答
1113 浏览

serial-port - 为什么我的代码只能在一个方向(芯片-> PC)上进行串行通信?

我正在用 C 语言为 Arduino Mega 2560 编写代码,我正在尝试通过串行端口进行双向通信。但是,只有将数据从 Arduino 发送到 PC 才有效——反之则不行。arduino 上的 RX LED 很快亮起,但我的代码没有接收到数据(连接到“pin 13”的 LED 没有亮起)。有谁知道如何解决这一问题?

这是在 arduino 上运行的代码:

这是在 PC 上运行的代码:

(是的,我在 PC 上键入 <+> 以便它发送数据。另外,我尝试直接从代码中打开 LED 并且它起作用了。)

0 投票
0 回答
903 浏览

embedded - PIC 18F87J50 USART 配置和 ISR 故障

我在使用 PIC 18F87J50 的项目中遇到问题,特别是在我与它的 2 个 USART 通道协调时。

有2个主要问题。

1.) 无法设置目标波特率:

我正在使用 Open1USART() 和 Open2USART() 函数来初始化我正在使用的两个 USART 通道。我希望它们都配置为 14,400 波特。这些函数有 2 个参数。第一个是配置 USART 的位字段(异步与同步模式、8 位与 9 位等)。第二个是配置 USART 波特率的 SPBRG 值(取决于系统时钟速率)。

我打电话给两个像:Open1USART(USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_BRGH_LOW & USART_RX_INT_ON & USART_TX_INT_OFF, 346);

在我的设置中,SPBRG 的 346 似乎给了我 14,400 波特(在 O 型示波器上证实,一位的宽度约为 70us)。

问题是这只适用于 USART 2。在 USART 1 上,相同的 SPBRG 值给了我 57,600 的波特率。此外,在使用 SPBRG 值(并查看示波器时序以了解实际波特率影响)时,我看到了一些有趣的事情。

波特率随着我将 SPBRG 值从 0 增加而降低。SPBRG 为 87 给我 57,600 波特,173 -> 28,800 ......但它在大约 255 处重置。在 255 时,我的波特率约为 19,000。但是在 256 时,我的波特率非常高(~1,000,000)。然后,当我将 SPBRG 数字进一步向上移动时,波特率会越来越慢,但永远不会低于 19,000 波特标记,也永远不会一直下​​降到我需要的 14,400。

好的,所以我溢出了 SPBRG 字节,对吧?但是 USART 1 和 2 的配置方式完全相同,我可以在 USART 2 上使用 > 255 的 SPBRG 值。它们都具有相同的 BRGH 设置(低)和 BRG16 设置(高)。此外,根据这篇文章(PIC18F2680 上的 UART 接收中没有触发中断),似乎 TRISC6-7 是正确设置的重要位。我按照帖子的建议设置了这些(6 低,7 高)。

如果有帮助,我可以分享一些代码片段。

2.) ISR 不为每个传入字节触发:

我为 USART1 和 2 打开了 UART RX 中断。我没有以正确的波特率在 USART1 上说话,所以没有收到我的外围设备的回复。但是,在 USART2 上,我正在以 14,400 波特率说话,并且我的外围设备正在适当地回复(通过范围验证)。通过示波器,我可以看到我希望收到的所有 16 个字节,并且在线上的时序看起来很棒。但是,我的这个端口的 RX 中断只触发前 2 或 3 个字节。我需要连续接收 8 个字节才能知道外围设备正在回复什么......但我从来没有超过 2 或 3。

所以中断正在触发,但不是针对所有字节。

我知道我需要保持我的 ISR 非常短,以免错过下一个传入字节的中断,但即使我将 ISR 剥离到它的核心功能(删除调试打印输出等),我仍然只看到前 3 个字节。在示波器上,我可以看到前 3 个字节和其余字节之间没有区别(至少在位时序上没有)。前三个字节的值始终为 0xFF(这是预期的)。其余字节是不同的值,但这是我能看到的唯一区别,它并不能真正解释为什么没有 ISR 触发器。上面提到的另一个问题的链接当然似乎也与这个问题有关。但 ISR 正在触发,但并非一直如此。

您可以提供的任何帮助或见解将不胜感激,我将与我的客户再次核对,以确保我可以添加更多代码片段。

0 投票
1 回答
11808 浏览

discovery - stm32f0 uart编程

我试图让usart在我的stm32f0-discovery上工作,但现在我发现关于这种“缺乏”的文档有没有人有任何usart为stm32f050工作的例子?

谢谢。

巴特·特尼森

0 投票
1 回答
723 浏览

c - PIC18F46J50 EEPROM 读/写

我正在做的项目如下:

我得到了 ADuC7061 的 USART 与 PIC18F46j50 EUSART 连接。aduc7061 不断发送信息,而 pic18f 通过其 eusart0 接收该信息。

现在的问题是我必须将该信息存储在 pic18 的 eeprom 上,然后在对 128x64 图形显示器进行一些操作后显示该信息。