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

c++ 串口问题

    来源: 互联网  发布时间:2016-09-28

    本文导语:  昨天以为编译通过了结果今天调试老是断错误 class CSerial { private: //int m_fd; float jingdu; float weidu; pthread_t m_thread;                                          static void* ReceiveThreadFunc(void* lparm);...

昨天以为编译通过了结果今天调试老是断错误

class CSerial
{

private:
//int m_fd;
float jingdu;
float weidu;
pthread_t m_thread;                                 
        static void* ReceiveThreadFunc(void* lparm);                

public:
CSerial(){}                                          
virtual ~CSerial(){}     

         int m_fd;                                    
char DatBuf[512];                                   
int m_ExitThreadFlag;                           
      
        
        int OpenPort(int nPort,int nSpeed,int nBits,int nEvent,int nStop);
               
        int ClosePort();
                
        int WritePort(char *Buf,int len);
               
virtual int PackagePro(char* Buf,int len);

};

void* CSerial::ReceiveThreadFunc(void* lparm)
{      
CSerial *pSer=(CSerial*)lparm;
        int nread;
        fd_set rd;
        FD_ZERO(&rd);
        FD_SET(pSer->m_fd,&rd);
printf("%dn",pSer->m_fd);
        while(FD_ISSET(pSer->m_fd,&rd))
   {
         if(select((pSer->m_fd)+1,&rd,NULL,NULL,NULL)m_fd,pSer->DatBuf,512))>0)
   {       
         char *p;
                 int n;
while((p=strstr(pSer->DatBuf,"$GPRMC"))!=NULL)
{
for(n=0;nweidu,&pSer->jingdu);
printf("%f %fn",pSer->weidu,pSer->jingdu);
}

                         }      
                        
     }


         }
  }
这个是OpenPort里创建的线程函数    int ret=pthread_create(&m_thread,NULL,ReceiveThreadFunc,NULL);

结果是前面串口设置打开都正常 进入线程函数后发生段错误 CSerial *pSer=(CSerial*)lparm;我觉的是指针问题 C++不熟谁帮我解释下

|
你在开线程时的语句里int ret=pthread_create(&m_thread,NULL,ReceiveThreadFunc,NULL);对参数传的是NULL。那么lparm就等于NULL。必然会造成后面的程序崩溃。

    
 
 

您可能感兴趣的文章:

  • 急,linux C++ 串口非标准波特率设置问题,谢谢大虾
  • 深入分析Visual C++进行串口通信编程的详解
  • 关于linux串口通信中写串口的问题
  • vmware 上 linux 串口问题
  • 请教一个linux串口通讯问题?
  • linux下串口通信的问题
  • 板间串口通信问题
  • 扩展的串口卡上的串口操作的问题
  • 急!急!急!急!急! liux 串口问题
  • 最棘手一种串口问题。请教高手。在线等
  • 在线等待,求助LINUX下串口问题
  • 急了急了:串口read函数问题!
  • 串口配置问题
  • unix 下c写的串口程序调试问题!高手请进 !!!
  • 串口通信性能问题?
  • Linux 串口发送接收数据问题
  • 串口的问题!!!!!!!!!
  • AIX环境下串口读取问题
  • 串口通信编程问题
  • 串口中断的问题
  • 关于linux串口读的问题
  • 串口通讯问题,急郁闷!(不是编程,而是设置)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












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


  • 站内导航:


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

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

    浙ICP备11055608号-3