问题标签 [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.
windows - 从 USART 读取数据
我正在编写一个 ARM Cortex M3。我在 USART 端口上运行标准输出功能。我应该如何在我的 Windows 7 电脑上监控我的主板通过 USART 发送的数据?我应该使用标准的“USART 数据包嗅探器”吗?
timer - AVR Butterfly - 内部振荡器校准后的定时器重用
我正在根据 AVR 提供的示例代码(参见下面的代码)校准 AVR Butterfly 内部振荡器,以便能够使用 USART。由于我还想使用两个定时器控制的伺服电机,我想知道在校准过程之后是否可以重用 16 位定时器 1 - 我尝试重置 TCCR1A/B 但它没有成功(代码也在下面) . 我希望你能帮我解决这个问题。
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
关于我做错了什么的任何提示?
bluetooth - 从蓝牙设备从 pic18f4525 上的 RCREG 读取数据
我有一个项目,我试图通过蓝牙设备将数据从安卓手机发送到 pic18f4525。目前,我只是想让图片识别像“A”这样的简单字母。
据我了解,当 pic 通过 PORTC.7(RX 引脚)接收数据时,它会将 8 位信息存储到 RCREG 寄存器中,然后我要做的就是读取数据。我知道图片正在接收数据,因为正在设置接收标志。此外,我将示波器连接到图片的接收引脚,它正在接收正确的 01 序列。
我的问题是,我如何读取 RCREG 寄存器来访问信息?据我所知,我可以只使用 usart.h 中的 ReadUSART 但是这个头文件不会为我编译,所以我试图在没有那个头文件的情况下访问这些数据。有没有办法做到这一点?我试过直接存储数据(即值 = RCREG),我可以“读取”寄存器(接收标志被重置,所以我知道我正在读取它)但无论我做什么,图片总是认为该值为 0xFF发送。
我正在使用带有 ICD2 和 CC8E 编译器的 MPLAB 8.85 版。任何有关如何读取数据的帮助将不胜感激。我还完全阅读了在图片上使用 usart 的数据表,阅读了编译器手册,并在这个主题上进行了多次搜索,但无济于事。
谢谢你的帮助。
更新:
完毕!!!在又搞砸了几个小时后,我终于让它工作了。这实际上是一个波特率问题。谢谢你的帮助!
serial-port - PIC18f4620 在 SDCC 中接收 usart
我正在尝试实现PC(linux)与用于rs232的PIC18F4620的通信。传输(PIC -> 到 PC 很好)。但是,当我尝试将某些东西从 PC 传递到 PIC 时,PIR1bits.RCIF 标志永远不会设置,并且不会发生中断。
那是我的(PIC18f)代码(一个版本):
在 PC 中我做了:
所以,PIC到PC是可以的。但是当我尝试时:
回声“某事”> /dev/ttyUSB0
或者
或者即使我编写代码将 /dev/ttyUSB0 作为文件打开并写入,使用 python 串行模块,也没有任何反应。
c - USART接收中断stm32
我在处理 STM32 和 USART 中断的地图上进行开发。配置 USART1 并启用接收中断后。没有检测到接收中断的问题???
serial-port - 为什么我的代码只能在一个方向(芯片-> PC)上进行串行通信?
我正在用 C 语言为 Arduino Mega 2560 编写代码,我正在尝试通过串行端口进行双向通信。但是,只有将数据从 Arduino 发送到 PC 才有效——反之则不行。arduino 上的 RX LED 很快亮起,但我的代码没有接收到数据(连接到“pin 13”的 LED 没有亮起)。有谁知道如何解决这一问题?
这是在 arduino 上运行的代码:
这是在 PC 上运行的代码:
(是的,我在 PC 上键入 <+> 以便它发送数据。另外,我尝试直接从代码中打开 LED 并且它起作用了。)
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 正在触发,但并非一直如此。
您可以提供的任何帮助或见解将不胜感激,我将与我的客户再次核对,以确保我可以添加更多代码片段。
discovery - stm32f0 uart编程
我试图让usart在我的stm32f0-discovery上工作,但现在我发现关于这种“缺乏”的文档有没有人有任何usart为stm32f050工作的例子?
谢谢。
巴特·特尼森
c - PIC18F46J50 EEPROM 读/写
我正在做的项目如下:
我得到了 ADuC7061 的 USART 与 PIC18F46j50 EUSART 连接。aduc7061 不断发送信息,而 pic18f 通过其 eusart0 接收该信息。
现在的问题是我必须将该信息存储在 pic18 的 eeprom 上,然后在对 128x64 图形显示器进行一些操作后显示该信息。