你现在位置:首页>技术论文>数据通讯>正文
用Spcomm/MScomm串口通信的问题
日期:2008-3-17 17:07:29 来源:本站整理  
点击: 作者:未知
点击【】放大字体.
1.用Mscomm32(vb6带)在Delphi中的收发过程的代码
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

2.用Spcomm 在Delphi中的收发过程的代码
WWW_P※LCJS_CO※M-PLC-技-.术_网

我用了上面的两个控件发现Mscomm32能发送接收 可是不知道怎样将返回的数据还原成看的
WWW_P※LCJS_COM-PLC-)技.术_网

懂的数据(unicode?),我是和51单片机通讯的 谁能写出发送、接收代码将送上300分
P.L.C.技.术.网——可编程控制器技术门户

用Spcomm也是不知道怎样将返回的数据还原成看的懂的数据,另外它能否象Mscomm一样可以
WWW_P※LCJS_CO※M-PLC-技-.术_网

等到Buffer中有一定个数的字节后再收的功能呢?能否写出原代码将送上300分
WWW_P※LCJS_COM-PLC-)技.术_网

其实我看了以前关于串口的帖子 发现大家都是说一半的多 而能写全代码的少 
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

一般串行通讯用ASCII码比较多,当然也有用16进制,正好我都做过。如果是发送端不断发送,那么你可以用事件方式触发。如果是应答方式,你可以用轮询的方式来做。
plcjs.技.术_网

我以前一直是用VB写跟外围通讯的程序。所以不能提供给你delphi,不过Vb源程序和C源程序倒有
WWW_PLCJS_COM-PLC-技.术_网

C
WWW_PLCJS_COM-PLC-技.术_网

int _read_data_register(unsigned int uAddress,unsigned int number)
W1WW_P4LCJS_COM-PLC-技.术_网

{    unsigned char uSend[]={2,0x30,0x30,0x30,0x30,0x30,0x30,0x32,3,0x30,0x30};
WW.W_PLCJS_COM-PLC-技.术_网

unsigned char uReceive[104];
WWW_PLCJS_COM-PLC-技.术_网

unsigned int uTmp;
WWW.PLCJS.COM——可编程控制器技术门户

unsigned int uSum;
WWcW_PLCJS_COM-PLC-技.术_网

unsigned int num;
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

long lTmp;
WWW_PLC※JS_COM-PmLC-技.术_网

int i,j;
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

if(TESTING==1)
WWW_PL※CJS_COM-PLC-技.术_网

{    for(i=0;i<number;i++)uRead_value[i]=0;
W1WW_P4LCJS_COM-PLC-技.术_网

return TRUE;
P.L.C.技.术.网——可编程控制器技术门户

}
WWW_PLCJS_COM-PLC-技.术_网

init_plc();
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

num=number*2;
WWW_P※LCJS_COM-PLC-)技.术_网

if((num/16)>=10)
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

uSend[6]=(unsigned char)(num/16+0x41-10);
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

else
WW.W_PLC※JS_C,OM-PL,C-技.术_网

uSend[6]=(unsigned char)(num/16+0x30);
WWW_PLCJS_COM-PLC-技.术_网

if((num%16)>=10)
WWW.PLCJS.COM——可编程控制器技术门户

uSend[7]=(unsigned char)((num%16)+0x41-10);
WWW_PLC※JS_COM-PmLC-技.术_网

else
WW.W_PLCJS_COM-PLC-技.术_网

uSend[7]=(unsigned char)((num%16)+0x30);
W1WW_P4LCJS_COM-PLC-技.术_网

uAddress=uAddress*2+0x1000;
WWW_PLCJS@_COM%-PLC-技.术_网

uTmp=uAddress & 0x000f;
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

uSend[5]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
WW.W_PLCJS_COM-PLC-技.术_网

uTmp=(uAddress>>4) & 0x000f;
WW.W_PLCJS_COM-PLC-技.术_网

uSend[4]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
WWcW_PLCJS_COM-PLC-技.术_网

uTmp=(uAddress>>8) & 0x000f;
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

uSend[3]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
WWW_PLCJS@_COM%-PLC-技.术_网

uTmp=(uAddress>>12)&0x000f;
plcjs.技.术_网

uSend[2]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
WWW_PL※CJS_COM-PLC-技.术_网

uSum=0;
WWW_PLCJS_COM-PLC-技.术_网

for(i=1;i<9;i++)
——可——编——程——控-制-器-技——术——门——户

uSum=uSum+(unsigned char)uSend[i];
W1WW_P4LCJS_COM-PLC-技.术_网

uTmp=uSum&0x000f;
WWW_PL※CJS_COM-PLC-技.术_网

uSend[10]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
WWW.PLCJS.COM——可编程控制器技术门户

uTmp=(uSum>>4)&0x000f;
WWW_P※LCJS_CO※M-PLC-技-.术_网

uSend[9]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
P.L.C.技.术.网——可编程控制器技术门户

 /*disable();*/
P.L.C.技.术.网——可编程控制器技术门户

for(i=0;i<11;i++)
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

{    for(lTmp=0L;lTmp<DELAY_TIMES;lTmp++)
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

{    if((inportb(STATS_PORT)&0x20)!=0)
WWW_P※LCJS_CO※M-PLC-技-.术_网

break;
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

}
WWW_P※LCJS_CO※M-PLC-技-.术_网

if(lTmp>=DELAY_TIMES)
WWW_PLC※JS_COM-PmLC-技.术_网

{
WWW_P※LCJS_COM-PLC-)技.术_网

/*enable();*/
WWW_P※LCJS_COM-PLC-)技.术_网

return(FALSE);
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

}
P.L.C.技.术.网——可编程控制器技术门户

outportb(DATA_PORT,uSend[i]);
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

}
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

disable();
WWW_PLC※JS_COM-PmLC-技.术_网

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

for(lTmp=0;lTmp<DELAY_TIMES;lTmp++)
W1WW_P4LCJS_COM-PLC-技.术_网

{    if((inportb(STATS_PORT)&1)!=0)
WWW.PLCJS.COM——可编程控制器技术门户

break;
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

}
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

if(lTmp>=DELAY_TIMES)
WW.W_PLC※JS_C,OM-PL,C-技.术_网

{
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

enable();
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

return(FALSE);
WWW.PLCJS.COM——可编程控制器技术门户

}
WWW_PL※CJS_COM-PLC-技.术_网

uReceive[0]=inportb(DATA_PORT);
WWW_P※LCJS_CO※M-PLC-技-.术_网

if(uReceive[0]!=2)
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

{
WWW_P※LCJS_CO※M-PLC-技-.术_网

enable();
WWW_PLCJS@_COM%-PLC-技.术_网

return(FALSE);
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

}
W1WW_P4LCJS_COM-PLC-技.术_网

for(i=1;i<number*4+4;i++)
W1WW_P4LCJS_COM-PLC-技.术_网

{    for(lTmp=0L;lTmp<DELAY_TIMES;lTmp++)
P.L.C.技.术.网——可编程控制器技术门户

{    if((inportb(STATS_PORT)&1)!=0)
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

break;
P.L.C.技.术.网——可编程控制器技术门户

}
WWW_PLCJS_COM-PLC-技.术_网

if(lTmp>=DELAY_TIMES)
WWW_P※LCJS_CO※M-PLC-技-.术_网

{
WW.W_PLC※JS_C,OM-PL,C-技.术_网

enable();
WWW_P※LCJS_CO※M-PLC-技-.术_网

return(FALSE);
P.L.C.技.术.网——可编程控制器技术门户

}
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

uReceive[i]=inportb(DATA_PORT);
WW.W_PLCJS_COM-PLC-技.术_网

}
WWW.PLCJS.COM——可编程控制器技术门户

enable();
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

uSum=0;
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

for(i=1;i<number*4+2;i++)
WWW_PLCJS@_COM%-PLC-技.术_网

uSum=uSum+(unsigned int)uReceive[i];
WWW_PL※CJS_COM-PLC-技.术_网

uTmp=uSum&0xf;
WW.W_PLC※JS_C,OM-PL,C-技.术_网

uTmp=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
WWW_PLCJS@_COM%-PLC-技.术_网

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

if((unsigned char)uTmp!=uReceive[number*4+3])return(FALSE);
——可——编——程——控-制-器-技——术——门——户

uTmp=(uSum>>4)&0xf;
WWW_PLCJS@_COM%-PLC-技.术_网

uTmp=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
WW.W_PLC※JS_C,OM-PL,C-技.术_网

W1WW_P4LCJS_COM-PLC-技.术_网

if((unsigned char)uTmp!=uReceive[number*4+2])return(FALSE);
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

for(j=0;j<number;j++)
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

{    for(i=j*4+1;i<j*4+5;i++)
WWW_PL※CJS_COM-PLC-技.术_网

uReceive[i]=(uReceive[i]>0x39)?uReceive[i]-0x41+0xa:uReceive[i]-0x30;

本新闻共6页,当前在第11 2  3  4  5  6  
WWcW_PLCJS_COM-PLC-技.术_网

评论内容
载入中...
相关文章
商城相关
相关下载
博客相关
论坛相关
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
深圳秦合源科技有限公司 
   深圳市秦合源科技有限公司是国内领先的规模较大品种齐全的称重传感器(Loadce......
广州汇巨自动化设备有限公司 
   广州汇巨自动化设备有限公司是一家专业工业自动化产品和自动化设备开发、维修改造、电......
深圳联脉电子有限公司 
   公司自1998年创立以来,一直致力于工业控制产品的研发、制造、销售,目前有机房监......
北京力天昭阳科技发展有限公司 
   北京力天昭阳科技发展有限公司(PekingPowerSkyScience&......
东莞市友诚自动化 
   本公司专业代理台湾永宏、台达PLC、HITECH人机、特价供应文本显示器MD20......
深圳市爱威轮实业有限公司 
   爱威轮实业对广大用户的技术支持与服务,贯穿于与客户接触的每一个环节中,渗透在每一......
·栏目热门排行
·站内热门排行
载入中。。
报告错误·关于我们· 用户帮助· 联系我们 · 友情链接· 本站服务 · 合作伙伴 · 版权声明· 招聘信息 · 投搞指南

迅闻自动化工程部声明如下:
旗下网站:PLC技术网(www.plcjs.com)-可编程控制器技术门户
网站备案号:粤ICP备17165530号
网站法律顾问:ITLAW-庄毅雄律师
法律保护:PLC技术网,迅闻电子,plcjs.com,plcjs.net,plcjs.cn等字样

Copyright 2010-2015. All rights reserved. 

51La