Board logo

标题: 为什么我的串口接收不到PC发来的数据 [打印本页]

作者: lxh_yj    时间: 2007-4-2 18:13     标题: 为什么我的串口接收不到PC发来的数据

#include <stdio.h>
#include "alt_types.h"
int main(void)
{
alt_u8  time1;
alt_u16 time2;
alt_u32 time3;
FILE* fp;
fp=fopen("/dev/UART0","r+");

if(fp==NULL)
  {
  printf("Can't open uart!");
  exit(1);
  }
else
  {
  while(1)
    {
    time1=getc(fp);
    time2=getc(fp);
    time3=getc(fp);
    fprintf(fp,"time1=%c,time2=%c,time3=%c",time1,time2,time3);
    }
  fclose(fp);
  }
}

当我通过串口助手发送了3个字符后.始终没有打印出来.


作者: lxh_yj    时间: 2007-4-2 18:29

各位说说啥
作者: simon707    时间: 2007-4-3 16:12

NIOS从串口接收的数据要以十六进制数“D”(十进制的“13”)做为字符串的结尾才行。
作者: lxh_yj    时间: 2007-4-4 17:38

谢谢楼上的了

我通过串口助手发了0D了,还是不行

好像程序在停在getc(fp)这里了,我用示波器打了FPGA这边关于UART的RX ,这根线上数据是对的,就是接收不到,现在都急死了,那位仁兄给指点小弟下啥

是不是有什么地方没有设置好?


作者: dadaowai    时间: 2007-4-9 19:21

测试过了,正常!!!!!!!

dfdf
time1=d,time2=f,time3=d
dfdsfdfdfd
time1=f,time2=
,time3=
time1=d,time2=f,time3=dtime1=s,time2=f,time3=dtime1=f,time2=d,time3=f
fggfgfg
time1=d,tim
e2=
,time3=
time1=f,time2=g,time3=gtime1=f,time2=g,time3=f


作者: kzw    时间: 2007-4-9 23:25

不是程序上的问题,你看一下你的uart设置、时钟等,是不是有什么问题,以前碰到过类似的问题,uart的时钟选择错了。


作者: starliustar    时间: 2008-12-14 22:52

kzw您好,

我在使用uart中遇到一些问题,nios能发送,但不能接收信息,

提到uart的时钟选择错了,那么时钟的选择有什么需要注意的?

打扰了!谢谢!!


作者: starliustar    时间: 2008-12-17 09:34

找到问题了,是由于FPGA上的资源不足了,导致uart接收部分出现问题




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0