串口通信,求指教
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,请指教怎样可以将接收到的数据和发送的数据一致 先不要对数据进行转换,接收到什么就显示出来先看看对不对。或许是转换的问题呢? 楼主,问题解决了吗?我正好也需要这一块的程序,能不能帮个忙?{:4_379:}
无敌的力力 发表于 2016-4-20 09:36
楼主,问题解决了吗?我正好也需要这一块的程序,能不能帮个忙?
还没有解决,你也需要这块的程序?
cvifan 发表于 2016-4-19 18:38
先不要对数据进行转换,接收到什么就显示出来先看看对不对。或许是转换的问题呢?
你能帮我改一下吗?我改了,但是总是出现错误:'(
无敌的力力 发表于 2016-4-20 09:36
楼主,问题解决了吗?我正好也需要这一块的程序,能不能帮个忙?
现在解决了,还需要吗:D定义了一个全局变量,然后用switch语句
页:
[1]