hqwei 发表于 2008-3-25 10:29:26

c++builder中,用MSCOMM32控件来收串口数据,上位机接显示的都是ASCII码,请问如何显示

如题,请用过的高手帮忙回答一下,迷惑了好久了!

Feeling_MCU 发表于 2008-3-25 10:33:23

sprintf 函数

ATMEGA_007 发表于 2008-3-25 10:33:46

俺是这样解决的

    char          HEX[]            ={"0123456789ABCDEF"};

    ListBoxMain->Items->Add(String("")+ "0x" + HEX>>4] + HEX & 0x0F] + ","
                                    + "0x" + HEX>>4]+ HEX & 0x0F] + ","
                                    + "0x" + HEX>>4]+ HEX & 0x0F] + ","
                                    + "0x" + HEX>>4]+ HEX & 0x0F] + ","
                                    + "0x" + HEX>>4]+ HEX & 0x0F] + ","
                                    + "0x" + HEX>>4]+ HEX & 0x0F] + ","
                                    + "0x" + HEX>>4]+ HEX & 0x0F] + ","
                                    + "0x" + HEX>>4]+ HEX & 0x0F] + ","
                                    + "0x" + HEX>>4]+ HEX & 0x0F] + ","
                                    + "0x" + HEX>>4]+ HEX & 0x0F] + ","
                                    + "0x" + HEX>>4] + HEX & 0x0F] + ","
                                    + "0x" + HEX>>4] + HEX & 0x0F] + ","
                                    + "0x" + HEX>>4] + HEX & 0x0F] + ","
                                    + "0x" + HEX>>4] + HEX & 0x0F] + ","
                                    + "0x" + HEX>>4] + HEX & 0x0F] + ","
                                    + "0x" + HEX>>4] + HEX & 0x0F]);

hqwei 发表于 2008-3-25 10:52:24

那么如何显示十进制数或者符点数?

hqwei 发表于 2008-3-25 11:07:22

请问是不是所有的控件(MSCOMM,SPCOMM,COMPORT)接收到的单片机发来的十六进制数据都是ASICC码,那么要想显示实际单片机发来的数值,比如十进制或者浮点数是不是都要处理?如何处理?谢谢

ilymy 发表于 2008-3-25 11:15:34

恐怕都得自己转,或者在下位机转,其实都差不多

你的头像很红很暴力

hqwei 发表于 2008-3-25 11:35:54

好的,谢谢,.ASCII码有没有转成十六进制的好的方法?比如公式什么的?看到二楼的一大串,就没勇气看完/

ATMEGA_007 发表于 2008-3-25 11:42:06

俺懒,为了省事,你写个子函数就不长了

hqwei 发表于 2008-3-25 11:51:51

呵呵,谢谢楼上的,能请你解释一下吗?
plainttext>>4 + plainttext & 0x0F是什么意思?
刚学不懂你写的意思?谢谢

ilymy 发表于 2008-3-25 11:54:05

unsigned char Buf;

      //16进制
          IntToHex(Buf,2)
      //10进制
       IntToStr(Buf)
       //10字符
          本身就是


显示的话直接往一个ansistring上加,然后在memo什么的add

shotstar 发表于 2008-3-25 12:00:49

AnsiString s;
s += IntToHex(TmpData,2);   //转为16进制

kaiwenavr 发表于 2008-3-25 13:00:35

mark

kaiwenavr 发表于 2008-3-25 13:00:37

mark

hqwei 发表于 2008-3-26 14:52:00

已经搞定了,谢谢各位帮忙,
页: [1]
查看完整版本: c++builder中,用MSCOMM32控件来收串口数据,上位机接显示的都是ASCII码,请问如何显示