我在写一个判断短信自动回复的程序,

发布于 2022-10-15 08:54:27 字数 1126 浏览 23 评论 0

void* gprs_read(void * data)
{
        int i=0;
        char c;
        char buf[1024];
          printf("\nread modem\n");
       
          while (STOP==FALSE)         {               
               
                    tty_read(&c,1);        
                printf("%c",c);       
               
        }
          printf("exit from reading modem\n");
          return NULL;
}
通过这个程序一直读串口的数据按字符读取数据!!!!
可是发现这样无法判断什么时候获得数据????什么时候是在等待!!!我真的不懂这个是怎么回事呢,希望大家给予解答!!怎么判断接受字符串暂告结束???

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

他是夢罘是命 2022-10-22 08:54:27

你这样的写法,有点 。。。 咳咳。。。

if (NULL != select(fd,fset,......))
{
       len = read_tty(fd,buffer,len);
       ......
       //组合上次的包
       //判读是否是一个完整包
}

﹎☆浅夏丿初晴 2022-10-22 08:54:27

回复 2# fanronghua

    怎么判断是否是一个完整的包呢?
结束符是? '\0’ ?
我读的是一个字符,估计没什么影响,

生死何惧 2022-10-22 08:54:27

我自己想了很久不知道这个怎么样?大家看看
void* gprs_read(void * data)
{
        int i=0;
        char c;
        char buf[1024];
          printf("\nread modem\n");
        
          while (STOP==FALSE)         {               
               
    label:                tty_read(&c,1);         
                printf("%c",c);        
                buf[i]=c;
                if(buf[i]!='\0')
                     goto label;
                else
                //开始执行分析过程  
           。。。。;              
        }
          printf("exit from reading modem\n");
          return NULL;
}

紫﹏色ふ单纯 2022-10-22 08:54:27

我自己想了很久不知道这个怎么样?大家看看
void* gprs_read(void * data)
{
        int i=0;
        ...
qianguozheng 发表于 2011-04-23 12:21

    我按照上面的方法做了,可是没有得到想要的结果。!!!!
这个就是接口问题吧!!怎么才能判断已经读取完毕呢?

独守阴晴ぅ圆缺 2022-10-22 08:54:27

判断有没有读完,在串口协议中,只有两个办法,超时和协议控制。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文