在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2899|回复: 4

我这段rs232的程序请帮忙改个界面

[复制链接]
发表于 2004-5-9 10:26:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
最近朋友给了段程序,怎么也看不明白.他让改个界面.高手们帮帮忙了
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#define LEN         1024
    HANDLE hndCom;
    char r_buf[LEN],r_b[LEN];
    int head,tail;
    COMSTAT ComSt;
    DWORD nb;
void main()
{
    DCB comd;
    char cm[40],rtx[50],rty[50];
    float x,y;
    char sn[]="0";
    head=tail=0;
    hndCom = CreateFile("COM1",GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,
                0,0);
    if (hndCom==INVALID_HANDLE_VALUE)
    {
        printf("Could n`t Open COM1!      Press any key exit");
        getch();
        return;
    }
    else
    {
        gotoxy(20,24);
        printf("ress any key exit");
    }
    strcpy(cm,"COM1:9600,n,8,1,");
    GetCommState(hndCom,&comd);
    BuildCommDCB(cm,&comd);
    SetupComm(hndCom,1000,1000);
    SetCommState(hndCom,&comd);
    int i,j,len,okx=0,oky=0;
    bool loop=true;
    long times=0;
    DWORD n;
    while (loop)
    {
        if(ClearCommError(hndCom,&nb,&ComSt)==TRUE)
        {
            if (ComSt.cbInQue>0)
            {
                ReadFile(hndCom,&r_buf,ComSt.cbInQue,&n,NULL);
                r_buf[n]=0;
                for(i=0;i<n;++i)
                {
                    r_b[tail]=r_buf;
                    ++tail;
                    if (tail>=LEN) tail=0;
                }
                if (tail>=head) len=tail-head;
                else
                 len=LEN-head+tail;
                i=head;
                j=0;
                while (len>0)
                {
                    if (r_b=='X' && len>=11)
                    {
                        for (j=0;j<9;++j)
                            rtx[j]=r_b[i+j+2];
                        rtx[j]=0;
                        head=head+11;
                        len=len-11;
                        if (head>=LEN) head=head-LEN;
                        if (rtx[5]=='.') okx=1;
                    }
                    if (r_b=='Y' && len>=11)
                    {
                        for (j=0;j<9;++j)
                            rty[j]=r_b[i+j+2];
                        rty[j]=0;
                        head=head+11;
                        len=len-11;
                        if (head>=LEN) head=head-LEN;
                        if (rty[5]=='.') oky=1;
                    }
                    if (okx || oky)
                    {
                        times=0;
                        WriteFile(hndCom,sn,1,&nb,NULL);
                    }
                    --len;
                    ++i;
                    if (i>=LEN) i=0;
                }//end while
                times=0;
            }//rec >0
            else
            {
                ++times;
                if (times>20000)
                {
                     WriteFile(hndCom,sn,1,&nb,NULL);
                     times=0;
                }
            }
        }
        if (okx)
        {
            gotoxy(10,10);
            printf(rtx);
            if (rtx[0]!='-')
            {
                rtx[0]=' ';
                x=atof(rtx);
            }
            else
            {
                rtx[0]=' ';
                x=atof(rtx)*-1;
            }
            printf("           X=%7.3f",x);
            okx=0;
            rtx[0]=0;
        }
        if (oky)
        {
            gotoxy(10,12);
            printf(rty);
            if (rty[0]!='-')
            {
                rty[0]=' ';
                y=atof(rty);
            }
            else
            {
                rty[0]=' ';
                y=atof(rty)*-1;
            }
            printf("           Y=%7.3f",y);
            oky=0;
            rty[0]=0;
        }
        if (kbhit())
        {
            loop=false;
        }
    }
    CloseHandle(hndCom);
}
发表于 2004-5-9 18:44:17 | 显示全部楼层

我这段rs232的程序请帮忙改个界面

不可能看不明白吧?
可惜我这里没有编译环境
放到编译环境里面去,看看有没有错
一步步执行就知道是怎么会事拉
多熟悉熟悉C++
发表于 2004-5-12 22:33:42 | 显示全部楼层

我这段rs232的程序请帮忙改个界面

It is C code, running on 瘟都死 系统.
发表于 2015-11-21 18:16:43 | 显示全部楼层
rs232的程序请 !!!
发表于 2015-11-21 18:17:55 | 显示全部楼层
rs232的程序
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-18 22:48 , Processed in 0.023500 second(s), 12 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表