18829206696 发表于 2016-4-19 17:33:01

串口通信,求指教

int CVICALLBACK ComRecvThreadFunction (void *functionData)
{
        int i;
        char *matchedchar;
        unsigned int value;
       
        while (g_FinishFlag)
        {
                char buf = {0};
                if (0 == 1)
                {
                        Delay(0.2);
                        continue;
                }
                int len = GetInQLen(1);
                int count = ComRd (1, buf, 451);
               
                //未读到数据,延时200毫秒,继续监听
                if (0 == count)
                {
                        Delay(0.2);
                        continue;
                }
               
                for(i=0;i<count;i++)
                {
                        if(buf==0x61)        //当字符为‘a’时,执行以下代码。
                        {
                                matchedchar=buf+i+1;       //将matchedchar的指针对准字符'a'的下一位,即指向接收的数据
                                Fmt(&value,"%d<%s",matchedchar);//数据格式转换:字符型转换成整型
                                SetCtrlVal(panelHandle,PANEL_NUMERIC,value);
                                FlushInQ(1);                          //清空指定端口的输入队列
                        }
                        else if(buf==0x62)
                        {
                                matchedchar=buf+i+1;
                                Fmt(&value,"%d<%s",matchedchar);
                                SetCtrlVal(panelHandle,PANEL_NUMERIC_2,value);
                                FlushInQ(1);
                        }
                        else if(buf==0x63)
                        {
                                matchedchar=buf+i+1;
                                Fmt(&value,"%d<%s",matchedchar);
                                SetCtrlVal(panelHandle,PANEL_NUMERIC_3,value);
                                FlushInQ(1);
                        }
                }
        }
        return 0;
}
代码可以正常运行,但是接收到的数据和发送的数据结果不同,无论发送什么接收到的都是1754439612,请指教怎样可以将接收到的数据和发送的数据一致

cvifan 发表于 2016-4-19 18:38:05

先不要对数据进行转换,接收到什么就显示出来先看看对不对。或许是转换的问题呢?

无敌的力力 发表于 2016-4-20 09:36:29

楼主,问题解决了吗?我正好也需要这一块的程序,能不能帮个忙?{:4_379:}

18829206696 发表于 2016-4-20 09:41:32

无敌的力力 发表于 2016-4-20 09:36
楼主,问题解决了吗?我正好也需要这一块的程序,能不能帮个忙?

还没有解决,你也需要这块的程序?



18829206696 发表于 2016-4-20 09:43:19

cvifan 发表于 2016-4-19 18:38
先不要对数据进行转换,接收到什么就显示出来先看看对不对。或许是转换的问题呢?

你能帮我改一下吗?我改了,但是总是出现错误:'(

18829206696 发表于 2016-11-10 11:34:45

无敌的力力 发表于 2016-4-20 09:36
楼主,问题解决了吗?我正好也需要这一块的程序,能不能帮个忙?

现在解决了,还需要吗:D定义了一个全局变量,然后用switch语句
页: [1]
查看完整版本: 串口通信,求指教