当前位置:  技术问答>linux和unix

串口读取的问题(问题解决高分相送 100分)

    来源: 互联网  发布时间:2015-08-24

    本文导语:  我写了一个读取串口的程序,但是每次读取的类容都是不完整的. 如果我让程序sleep(1)读取的内容又会多. 怎样控制读取才能取得自己想要的完整信息. | 用select监听,一次读取一个直到read返回0即...

我写了一个读取串口的程序,但是每次读取的类容都是不完整的.
如果我让程序sleep(1)读取的内容又会多.
怎样控制读取才能取得自己想要的完整信息.

|
用select监听,一次读取一个直到read返回0即可.

|
# include 
# include 
# include 
# include 
# include 
# include 
# include 
# include 
# include "tools.h"

extern  int  comm_flag;
jmp_buf  env_buf;
void timeout_handler ( int );

FILE * fppp;

int rcv ( fd_r, fd_w, buffer, max_count )

unsigned  char * buffer;
unsigned  max_count;
int fd_r, fd_w;

{

unsigned  char  * current, lrc;
unsigned  int   i, lenth , time_out_comm;
char filename [ 80 ];
char date [ 9 ] , time [ 9 ] , tmp [40];

signal ( SIGALRM, timeout_handler );
alarm ( 0 );
setjmp ( env_buf );

current = buffer;
* current = 0x00;

  if ( comm_flag == 1 ) {               /* modem pool need handshake */

  while ( * current != 0x05 )   /** ENQ **/
  read ( fd_r, current, 1 ); 

  * current = 0x06;        /** ACK **/
    write ( fd_w, current, 1 );

for ( i = 0; i = 6 ) 
return ( -1 );
}
else {       /* nac or rs232 */
while ( * current != 0x02 )   /**** STX ****/
   read ( fd_r, current, 1 );
}

/* 
 *  when recv time large 3 sec
 *  error and exit !
 */  
time_out_comm = GetTimeOut ( "COMPOS" ) ;
alarm ( time_out_comm ) ;

current ++;
  for ( i = 0; i > 4 ) * 10 + ( * current & 0x0f );
current --;
lenth += ( * current >> 4 ) * 1000 + ( * current & 0x0f ) * 100; 

current += 2; 

ErrorLog ( TRACE, "lenth = %d", lenth );

if ( lenth >= 512 ) {

* current = 0x0;

alarm ( 0 ) ;

return ( -1 ) ;
}

  for ( i = 0; i 

    
 
 

您可能感兴趣的文章:

  • 关于linux串口通信中写串口的问题
  • vmware 上 linux 串口问题
  • 请教一个linux串口通讯问题?
  • linux下串口通信的问题
  • 板间串口通信问题
  • 扩展的串口卡上的串口操作的问题
  • 急!急!急!急!急! liux 串口问题
  • 最棘手一种串口问题。请教高手。在线等
  • 在线等待,求助LINUX下串口问题
  • 急了急了:串口read函数问题!
  • 串口配置问题
  • unix 下c写的串口程序调试问题!高手请进 !!!
  • 串口通信性能问题?
  • Linux 串口发送接收数据问题
  • 串口的问题!!!!!!!!!
  • AIX环境下串口读取问题
  • 串口通信编程问题
  • 串口中断的问题
  • 关于linux串口读的问题
  • 串口通讯问题,急郁闷!(不是编程,而是设置)
  • 高分求助:我笔记本没有串口,在linux下要和一个串口设备连,怎么办?
  • 高分问linux串口和windows通信问题
  • 高分求解,unix终端上的串口怎么标示
  • 高分求纯DOS系统下的串口调试工具
  • linux下串口驱动编写和PPP协议的实现高分相送
  • 高分解决LINUX串口通信错误,在线等待
  • 高分请教一个串口驱动模块加载的问题
  • 关于Linux串口的问题,高分求助,急!急!急!
  • 高分求助:redhad9下的 linux串口数据收和发
  • !!!Linux下如何实现Modem的点对点拨号串口通信? 高分赠送加衷心感谢.
  • 简单问题高分求救:在Redhat 9.0下怎么判断一个串口到底能不能用呀?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在windows中的VMware装了个linux,主板有两个串口,能做windows和linux的串口通信测试么,怎么测试这两个串口在linux是有效
  • linux下几个设备通过串口串行连接,如何协调各串口发送数据
  • 散分100,求解串口键盘和串口鼠标驱动
  • Linux 中用java语言写串口程序,提示找不到串口
  • 开发板串口与实际内核中的串口文件的对应关系怎么回事?谢谢帮忙
  • 怎么判断串口已经收到数据,并及时读出?怎么判断串口已经将写入的数据发送完毕?
  • 工控机有6个串口,但用光盘安装debian6.05,在dev中只找到4个串口,如何解决。
  • linux下串口发送数据用串口精灵接受不到或为全零
  • 在虚拟Linux系统下能进行串口通讯吗?最好给个串口通讯的代码!谢谢!
  • 要加多个串口,怎么分别指定他们的driver_name和dev_name以示区别各个串口?
  • 工控机上用光盘安装debian6.05,硬件上有6个串口,但是软件上即dev中只有4个串口,如何解决。
  • 嵌入式linux,串口初始化时,无法设置串口属性
  • 请教串口通信的编程
  • 请问如何以独占的方式打开串口
  • linux串口驱动该怎么写
  • 虚拟串口怎么读数据? 请有 串口 或者 usb 驱动经验的高手指点
  • linux下如何清空串口的输入输出缓存
  • linux下怎么监控串口?
  • u-boot中处理串口通讯的源码在哪?
  • 求助达人,USB转串口是否遇到过多台设备接入机器,串口冲突?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3