求上位机界面程序

huangjuanlove 2014-10-22 04:37:57
我是用MFC作一个上位机的界面,现在要把串口接收的的下位机的信息(如下)
19 02 00 01 00 01 06 01 50 70 7D 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 00 00 00
00 00 00 01 78 CA 00 00 14 86 (接收数据)转换成十进制数字显示在名为IDC_EDIT_RECMSG 编辑框中,。本人对C++很迷茫,希望大神帮编写个程序。感激不尽。
...全文
339 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianghandaxue 2014-11-25
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
参考下面:
#include <stdio.h>
char hexstr[]="19 02 00 01 00 01 06 01 50 70 7D 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 01 78 CA 00 00 14 86  ";
unsigned char hexval[256];
char *p;
int i,v,n,r;
unsigned short int usi;
unsigned int ui;
int main() {
    i=0;
    p=(char *)hexstr;
    while (1) {
        r=sscanf(p,"%2x%n",&v,&n);
        if (1==r) {
            hexval[i]=(unsigned char)v;
            i++;
            if (i>=256) break;
            p+=n;
        } else if (0==r) {
            p++;
        } else break;
    }
    n=i;
    for (i=0;i<n;i++) printf("%02X ",hexval[i]);
    printf("\n");

    //比如hexval[0..1]组成一个unsigned short int
    usi=*(unsigned short int *)&hexval[0];
    printf("usi=0x%04hX=%hd\n",usi,usi);

    //比如hexval[2..5]组成一个unsigned int
    ui=*(unsigned int *)&hexval[2];
    printf("ui=0x%08X=%d\n",ui,ui);

    //...

    return 0;
}
//19 02 00 01 00 01 06 01 50 70 7D 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 01 78 CA 00 00 14 86
//usi=0x0219=537
//ui=0x01000100=16777472
//
参考这位大哥的程序
向立天 2014-11-22
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
赵4老师 2014-10-22
  • 打赏
  • 举报
回复
参考下面:
#include <stdio.h>
char hexstr[]="19 02 00 01 00 01 06 01 50 70 7D 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 01 78 CA 00 00 14 86  ";
unsigned char hexval[256];
char *p;
int i,v,n,r;
unsigned short int usi;
unsigned int ui;
int main() {
    i=0;
    p=(char *)hexstr;
    while (1) {
        r=sscanf(p,"%2x%n",&v,&n);
        if (1==r) {
            hexval[i]=(unsigned char)v;
            i++;
            if (i>=256) break;
            p+=n;
        } else if (0==r) {
            p++;
        } else break;
    }
    n=i;
    for (i=0;i<n;i++) printf("%02X ",hexval[i]);
    printf("\n");

    //比如hexval[0..1]组成一个unsigned short int
    usi=*(unsigned short int *)&hexval[0];
    printf("usi=0x%04hX=%hd\n",usi,usi);

    //比如hexval[2..5]组成一个unsigned int
    ui=*(unsigned int *)&hexval[2];
    printf("ui=0x%08X=%d\n",ui,ui);

    //...

    return 0;
}
//19 02 00 01 00 01 06 01 50 70 7D 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 01 78 CA 00 00 14 86
//usi=0x0219=537
//ui=0x01000100=16777472
//
wushuang443 2014-10-22
  • 打赏
  • 举报
回复
这个很简单的,百度一下就知道怎么做了

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧