cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 864|回复: 5

串口通信,求指教

[复制链接]
发表于 2016-4-19 17:33:01 | 显示全部楼层 |阅读模式
int CVICALLBACK ComRecvThreadFunction (void *functionData)
{
        int i;
        char *matchedchar;
        unsigned int value;
       
        while (g_FinishFlag)
        {
                char buf[451] = {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[i]==0x61)        //当字符为‘a’时,执行以下代码。
                        {
                                matchedchar=buf+i+1;         //将matchedchar的指针对准字符'a'的下一位,即指向接收的数据
                                Fmt(&value,"%d<%s",matchedchar);  //数据格式转换:字符型转换成整型
                                SetCtrlVal(panelHandle,PANEL_NUMERIC,value);
                                FlushInQ(1);                          //清空指定端口的输入队列
                        }
                        else if(buf[i]==0x62)
                        {
                                matchedchar=buf+i+1;
                                Fmt(&value,"%d<%s",matchedchar);
                                SetCtrlVal(panelHandle,PANEL_NUMERIC_2,value);
                                FlushInQ(1);
                        }
                        else if(buf[i]==0x63)
                        {
                                matchedchar=buf+i+1;
                                Fmt(&value,"%d<%s",matchedchar);
                                SetCtrlVal(panelHandle,PANEL_NUMERIC_3,value);
                                FlushInQ(1);
                        }
                }
        }
        return 0;
}
代码可以正常运行,但是接收到的数据和发送的数据结果不同,无论发送什么接收到的都是1754439612,请指教怎样可以将接收到的数据和发送的数据一致
发表于 2016-4-19 18:38:05 | 显示全部楼层
先不要对数据进行转换,接收到什么就显示出来先看看对不对。或许是转换的问题呢?
发表于 2016-4-20 09:36:29 | 显示全部楼层
楼主,问题解决了吗?我正好也需要这一块的程序,能不能帮个忙?{:4_379:}
 楼主| 发表于 2016-4-20 09:41:32 | 显示全部楼层
无敌的力力 发表于 2016-4-20 09:36
楼主,问题解决了吗?我正好也需要这一块的程序,能不能帮个忙?

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



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

你能帮我改一下吗?我改了,但是总是出现错误
 楼主| 发表于 2016-11-10 11:34:45 | 显示全部楼层
无敌的力力 发表于 2016-4-20 09:36
楼主,问题解决了吗?我正好也需要这一块的程序,能不能帮个忙?

现在解决了,还需要吗定义了一个全局变量,然后用switch语句
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-5 06:32 , Processed in 0.632017 second(s), 8 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表