MyFPGA Forum

 找回密码
 注册
搜索
查看: 6243|回复: 17
打印 上一主题 下一主题

谢谢大家的帮忙啊,我的终极问题啊

[复制链接]
跳转到指定楼层
1#
发表于 2010-1-27 17:25:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
其实每天在上面问问题,最终要解决的是在一个没有任何外挂器件
(RAM,SDRAM,FALSH)的FPGA上实现一个UART 的通讯,用NIOS做,
但现在开发板还没拿到手,所以先用DE0的板子试试,看是否行的通,
很简单的一个系统,但就是经常出现毛病的,现在我要测试UART的通信,
是按网上有人说的在NIOS IDE里面打开一个HELLO—NIOS的工程,然后
把stdout 和stdin设置成uart,编译这个工程并运行,如果在console栏
里打印出“Hello NIOSⅡ ”则表明串口通信正常,反正我是运行成功但是
没有输出任何东西的,请求各位这个可行么,不行的话有别的什么办法,谢谢!
代码太大了,发不了,明天再发。
2#
发表于 2010-1-27 17:33:11 | 只看该作者
我也没试成
3#
 楼主| 发表于 2010-1-28 09:05:36 | 只看该作者
那是方法原因还是板子的原因了?
4#
发表于 2010-1-28 12:53:30 | 只看该作者
internal RAM 不夠 ?
5#
 楼主| 发表于 2010-1-28 14:45:18 | 只看该作者
我又试了一下外挂SDRAM,把RS232连在PC上了,还是发的没收到啊。
6#
 楼主| 发表于 2010-1-28 14:45:41 | 只看该作者
回复 4# Steady_Chou

我又试了一下外挂SDRAM,把RS232连在PC上了,还是发的没收到啊。
7#
 楼主| 发表于 2010-1-28 14:46:04 | 只看该作者
回复 4# Steady_Chou

我又试了一下外挂SDRAM,把RS232连在PC上了,还是发的没收到啊。
8#
发表于 2010-1-28 15:26:14 | 只看该作者
先确定baud rate在FPGA上和PC端是一样的 ?
9#
发表于 2010-1-28 15:29:50 | 只看该作者
用示波器看一下。
10#
发表于 2010-1-28 15:48:06 | 只看该作者
SOPC里面应该可以选baud rate,然后设定跟PC端的设定一样就可以
11#
 楼主| 发表于 2010-1-29 10:39:39 | 只看该作者
连PC的时候,收发端接反了,现在已经解决了。可以正常通讯了。软件方面还要什么程序啊
12#
发表于 2010-1-29 17:09:42 | 只看该作者
你指的软件是 FPGA端还是PC端?
13#
 楼主| 发表于 2010-2-1 09:40:34 | 只看该作者
回复 12# Steady_Chou


    PC端的,在NIOS IDE里面的
14#
发表于 2010-2-1 12:44:46 | 只看该作者
你是说 PC端要怎么写UART的程序吗??
15#
 楼主| 发表于 2010-2-1 17:17:39 | 只看该作者
回复 14# Steady_Chou


    是的,软件不熟
16#
发表于 2010-2-1 19:18:42 | 只看该作者
你PC端软件是用哪个?  BCB?
17#
发表于 2010-2-2 21:35:15 | 只看该作者
read/write example (None-Blocking Read)

void test8_uart(void){
    int uart, result;
    char szHello[] = "\r\nHello from Nios II Uart, please input:\r\n";
    char szRead[1];
   
    // open uart
    uart = open(UART_NAME, O_ACCMODE);  // UART_NAME defined in system.h
    if (!uart){
        printf("failed to open uart\n");
        return;
    }
   
    // write uart
    if (write(uart, szHello, strlen(szHello)) != strlen(szHello)){
        printf("failed to write uart");
        close(uart);
        return;
    }        
// none-blocking read
    fcntl(uart, F_SETFL, O_ACCMODE | O_NONBLOCK);
    while(result >= 0){
        result = read(uart, szRead, sizeof(szRead));
        if (result == -1){
            printf("failed to read uart");
        }else if (result > 0){
            printf("%c", szRead[0]);
        }            
    }
    fcntl(uart, F_SETFL, O_ACCMODE);
    close(uart);
   
}
18#
 楼主| 发表于 2010-2-3 14:29:18 | 只看该作者
回复 17# rich


    好的,我看看,谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|MyFPGA

GMT+8, 2024-5-6 20:19 , Processed in 0.048506 second(s), 15 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表