6240|8

74

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

vxworks串口通信 帮帮忙啊!!! [复制链接]

 本人初学VxWorks,前不久刚安装了虚拟机,运行也正常,WDB_COMM_END
现在想试一个与串口进行通信的例子,我所用的程序在下面,编译下载都没有问题,串口助手也打开并且

设置了,
可是依次运行open_com1,config_com1和send_com1后串口却没有反应(没有任何显示),要写向串口的数

据却在shell下显示了,
不知这是什么原因呢?对串口的操作不就是对文件的操作吗?
拜托各位大虾和斑竹一定帮帮忙啊,能说的详细些就更好了,谢谢、谢谢、谢谢了!!!!!!!

/*uart.c--serious  transimiting  or receiving*/

/*头文件*/

#include
#include "strLib.h"
#include
#include
#include
#include
#include
#include
#include
#include "types/vxTypesOld.h"

/* global variables */

int width;
int   fd; /*串口设备文件描述符*/
int   accept_com1_ID,send_com1_ID;
struct fd_set fds_data;
struct fd_set data_fds;
        /* pre_declaration */
int open_com1 ( ) ;
int config_com1 ( void ) ;
int accept_com1 ( void ) ;
int send_com1 ( void ) ;
extern STATUS close(fd);


   
/* 打开串口*/

int open_com1() /*打开串口2函数 */

    {
        int fd;   
        fd = open("/tyCo/0",O_CREAT|O_RDWR,0); /*打开串口并返回串口设备文件描述符*/

        if(fd==ERROR)  /*如果不能打开串口1则打印出错信息*/

        printf("You can’t open port com1!\n");
        else printf("open Com1 successfully!\n");
        
     }  

/* 配置串口*/

int config_com1(void)                     /*串口1配置函数*/

    {
        ioctl(fd,FIOSETOPTIONS,OPT_LINE);  /*设置串口工作模式为行模式:LINE_MODE */
                                                                                    

/*OPT_LINE is incleded in iolib.h*/

        ioctl(fd,FIOBAUDRATE,9600);        /*设置串口波特率为9600bps*/

        ioctl(fd,FIOFLUSH,0);               /*清空输入输出缓冲*/

        ioctl(fd,SIO_HW_OPTS_SET,CS8|STOPB|PARENB|PARODD);     /*设置 8 位数据位,2位停止位

,带校验位,奇校验*/
        ioctl (fd, FIOSETOPTIONS,OPT_ECHO | OPT_CRMOD | OPT_TANDEM | OPT_7_BIT);
        printf("set options successfully\n");
    }

/* 串口接收数据 */



/* 串口发送数据 */

int send_com1(void) /*向串口1发送数据函数*/

   {           
         char *send_buf ="Hello,Data had accept!";  /*待发送数据*/

         write(fd,send_buf,strlen(send_buf));   
        
              /*任务阻塞等待写串口准备完毕*/
         
         
        }

/*关闭串口*/

extern STATUS close(fd)
        {
            close(fd);
        }

最新回复

这错误有点低级吧 =_=  详情 回复 发表于 2008-5-8 17:27
点赞 关注
 

回复
举报

75

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
把你的iosFdShow, devs之类的信息贴出来。
可能是全局文件描述符的问题
 
 
 

回复

93

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
太感谢你的帮忙了!!!
在shell下的运行情况是这样的:

      /////   /////   /////   /////   /////       |
     /////   /////   /////   /////   /////        |
    /////   /////   /////   /////   /////         |
    /////   /////   /////   /////   /////         |
   //////  //////  //////  //////  //////         |     
   //////  //////  //////  //////  //////         |     T  O  R  N  A  D  O
    /////   /////   /////   /////   /////         |                        
    /////   /////   /////   /////   /////         |                              
     /////   /////   /////   /////   /////        |           Development  System
      ////    ////    ////    ////    ////        |                        
       ////    ////    ////    ////    ////       |                              
        ////    ////    ////    ////    ////      |           Host  Based   Shell
         ////    ////    ////    ////    ////     |                              
          ////    ////    ////    ////    ////    |                              
           ///     ///     ///     ///     ///    |           Version  2.2
           ///     ///     ///     ///     ///    |       
            //      //      //      //      //    |
            //      //      //      //      //    |
            //      //      //      //      //    |
           //      //      //      //      //     |

      Copyright 1995-2002 Wind River Systems, Inc.

C++ Constructors/Destructors Strategy is AUTOMATIC

-> open_com1
open Com1 successfully!
value = 24 = 0x18
-> config_com1
set options successfully
value = 25 = 0x19
-> send_com1
Hello,Data had accept!
-> iosFdShow
fd name                 drv
  3 /pcConsole/0           2
  4 (socket)               5
  5 /vio/1                 9
  6 /tyCo/0                1
  7 /vio/2                 9
  8 /tyCo/0                1
  9 /tyCo/0                1
value = 0 = 0x0
-> devs
drv name
  0 /null
  1 /tyCo/0
  1 /tyCo/1
  2 /pcConsole/0
  2 /pcConsole/1
  4 /fd0
  6 as:
  9 /vio
value = 0 = 0x0
->
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
既然定义了全局的fd变量,为何又在open_com1时定义了一个局部变量呢?

这样的话,config_com1,send_com1等的操作对象fd都是未被初始化的,自然不行了。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

5
 
谢谢各位的帮忙了,全局文件描述符确实是有问题,而且还发现了原来我所用机器的串口有问题。唉,机器太古老了!
再次谢谢各位了!
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 
接分是王道!
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

7
 
不会,帮顶
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

8
 
以后需再关注,现在先帮你顶一下
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 
这错误有点低级吧 =_=
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表