MyFPGA Forum

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

串口发送遇到的问题 求高手解答

[复制链接]
跳转到指定楼层
1#
发表于 2011-3-30 19:37:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
跪求高人指导                                 
void Uart0_SendBuf(Uint8 const *buf, Uint32 n)
{
    int i;
    alt_u32 Status;
    for (i = 0; i < n; i++)  
      {
       IOWR_ALTERA_AVALON_UART_TXDATA(UART_BASE,buf[i]);
       Status = IORD_ALTERA_AVALON_UART_STATUS(UART_BASE);//保存状态
       while ((Status & ALTERA_AVALON_UART_STATUS_TRDY_MSK) == 0);     /* 等待数据发送完毕         */
      }
}
我这段程序为什么运行到while这个地方就停止了啊
trdy位不是自动清零吗?
trdy位不是在为1的时候才能向txdata寄存器写数据吗
2#
 楼主| 发表于 2011-3-30 19:38:35 | 只看该作者
求解答
坐等解答
坐等高手解答
3#
发表于 2011-3-31 15:34:40 | 只看该作者
直接采用IOWR这种端口操作,感觉不是太好用。。建议使用 file 操作方式来弄比较好
  1. void uart_loopback()
  2. {
  3. //    char buffer[640*480*2] = {0};
  4. //    char *pBuf = buffer;

  5.     char *pBuf = NULL;
  6.    
  7.     printf("uart loopback test...\n");
  8.     FILE*fp;
  9.     int i = 0;
  10.     fp =fopen("/dev/uart_0","r+");
  11.     if(fp)
  12.     {
  13.         pBuf = (alt_u8*)FRAME_SRC_LEFT;
  14.         for(i=0; i< 480 ; i++)
  15.         {
  16.             fread(pBuf, 1, 640, fp);
  17.             pBuf = pBuf + 640;
  18.             
  19.             printf("li = %d \n", i);
  20.         }
  21.         printf("load left image over...\n");
  22.         
  23.    
  24.         pBuf = (alt_u8*)FRAME_SRC_RIGHT;
  25.         for(i=0; i< 480 ; i++)
  26.         {
  27.             fread(pBuf, 1, 640, fp);
  28.             pBuf = pBuf + 640;
  29.             
  30.             printf("ri = %d \n", i);
  31.         }
  32.         printf("load right image over...\n");
  33.         
  34.         fclose(fp);
  35.         
  36.         fp =fopen("/dev/uart_0","r+");
  37.         
  38.         pBuf = (alt_u8*)FRAME_SRC_LEFT;
  39.         for(i=0; i<480; i++)
  40.         {
  41.             fwrite(pBuf,1,640,fp);
  42.             pBuf = pBuf + 640;
  43.             
  44.             printf("i = %d \n", i);
  45.         }
  46.         
  47.         printf("send left image over...\n");
  48.         
  49.         fclose(fp);  
  50.      }
  51.      else
  52.      {
  53.         printf("open uart device fail\n");
  54.      }
  55. }
复制代码
4#
 楼主| 发表于 2011-4-1 21:41:16 | 只看该作者
回复 3# yqzhang


这种我也写过,但是在接收时出错了,不知道什么原因,我用的是串口摄像头,发送完命令不能接收数据
5#
发表于 2011-4-2 09:40:22 | 只看该作者
两者的Baud,奇偶校验等参数都设置一致了么?
6#
发表于 2011-4-2 09:45:50 | 只看该作者
PC 串口测试tool.rar (33.56 KB, 下载次数: 13)
de2_115_Uart_SOPC.rar (1016.75 KB, 下载次数: 18)
这两部分是经过测试的。。。
7#
 楼主| 发表于 2011-4-6 20:12:20 | 只看该作者
回复 6# yqzhang

Baud,奇偶校验等参数都设置一致,可以发送,但是不能接受,只要当每次在我断电的时候会回答一些很乱的字符
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|MyFPGA

GMT+8, 2024-5-7 05:48 , Processed in 0.044779 second(s), 17 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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