【问题标题】:I can't read from a UART/Nios我无法从 UART/Nios 读取
【发布时间】:2015-03-09 16:36:52
【问题描述】:

我已经在我的 FPGA 中包含了一个 UART 组件,并且我已经编写了这个示例代码来输出一个字符(我想测试它是否工作):

  #include <alt_types.h>
#include <altera_avalon_pio_regs.h>
#include <altera_avalon_uart_regs.h>
#include <sys/alt_irq.h>
#include <sys/alt_alarm.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include "system.h"

int main(void)
{
int filed;
int x=0;
unsigned char c=5;
filed = open ("dev/uart_0", O_RDWR| O_NOCTTY );
while (x<10){
write (filed, &c,1);
x++;
}

}

我正在使用 realterm 读取输出,但没有出现任何内容,有什么帮助吗? 谢谢

【问题讨论】:

  • Uart 是一个硬件组件,它需要时间来传输东西,但你不会留下任何东西。无论如何,在硬件和软件上使用 NIOS 并不是那么简单,问题可能在链条的任何地方。
  • 你不需要初始化东西吗?波特率等?你必须打开UART的电源吗?硬件(电缆、连接器等)是否正常工作?我们无法通过博客修复嵌入式内容 - 您必须在现场使用硬件、调试器、示波器、终端仿真器等进行修复。
  • @EugeneSh。感谢您通过我的问题,您所说的留出时间是什么意思,我应该增加诡计循环(x
  • @MartinJames 你好,当我在 Qsys 中添加 UART 组件时,我确实设置了波特率,目前我没有被审查以获得正确答案,我只想看到一个输出,会这段代码给我一个输出?如果没有,我该怎么办?
  • “不留时间”我的意思是,您正在尝试一遍又一遍地写入 UART,而无需等待前一个操作完成。但正如@MartinJames 所说,之前有很多东西需要修复..

标签: c vhdl fpga nios


【解决方案1】:

谢谢大家,我做了一个修改,一切都很好,而不是写:filed = open ("dev/uart_0", O_RDWR| O_NOCTTY ); 我写filed = open ("dev/uart_0", O_RDWR); 我真的不知道为什么它会起作用,如果有人有答案请告诉我:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 2022-01-20
    • 2016-10-23
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    相关资源
    最近更新 更多