当前位置: 论文资料 >> 计算机论文 >> 计算机应用 >> 基于Vxworks实时操作系统的串口通信程序设计与实现
基于Vxworks实时操作系统的串口通信程序设计与实现

5.3 配置串口

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

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

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

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

ioctl(sfd,SIO_HW_OPTS_SET,CS8|STOPB|PARENB|PARODD);

//设置 8 位数据位,2位停止位,带校验位,奇校验

}

5.4 串口接收数据

int accept _com1(void) //从串口1接收数据函数

{  while(1)

   {  char * accept _buf;

FD_ZERO(&fds_data);//位码置零 

FD_SET(sfd,&fds_data);//初始化位码

width=sfd +1; 

//任务阻塞等待读串口准备完毕;

if(select(width,&fds_data,NULL,NULL,NULL)==ERROR)

  return(ERROR);

read(sfd, accept _buf,sizeof(accept _buf));  //从串口读字符

printf("accept message is : %s \n\n", accept _buf);   //输出接收到的信息

 }

}

5.5 串口发送数据

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

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

              //任务阻塞等待写串口准备完毕

if(select(width,NULL,&data_fds,NULL,NULL==ERROR)

   return(ERROR) ;

if(FD_ISSET(sfd,&fds_data))  //检查串口准备好就向串口写数据

write(sfd,send_buf,sizeof(send_buf)) ;

}

5.6 关闭串口

close(sfd);

6结束语

RS-232串口通信虽速率不高,但RS-422标准串行口通信则采用了双线传输,大大增加了抗共模干扰的能力,最大数据传输速度可以达到10Mb/s,这对于远程数据交换具有极大的优势。

本文描述了在实时操作系统VxWorks中利用串口实现数据通信的方法,并给出了示例程序,目前已经在我们开发的风洞测控系统中获得了应用。该方法可将其串口通信可适用于工业控制等多方面,具有广泛的适应性。在嵌入式实时操作系统中使用串口通信,不仅可扩展嵌入式设备通信能力,而且可扩大其的应用范围。

 

参考文献:

1孔祥营,柏桂枝.嵌入式实时操作系统vxworks及其开发环境Tornodo[M].北京:中国电力出版社,2002.01

2 陈智育,温彦军,陈琪编著VxWorks程序开发实践. 北京:人民邮电出版社,2004.05

3李方敏编著VxWorks高级程序设计. 北京:清华大学出版社,2004.05

上一页  [1] [2] 


相关文章列表:
  • 三峡工程信息网络资源应用功能的开发

  • 使用JAVA编写网络通信程序论文

  • 嵌入式实时操作系统的现状和未来

  • 高速电力线通信电磁兼容技术标准的研究动态

  • WCDMA基站天线的选择

  • 电力通信蓄电池的运行与维护

  • 通信新业务引领无线移动终端的未来

  • DSP与单片机通信的多种方案设计

  • 通信电源的运行管理与应用研究

  • 接入网技术在铁路通信中的应用