求助:各位大哥来帮我看看这个问题啊(IC 卡里读取的字节 变为 10 进制)谢谢!

pubk200   2008-3-26 10:21 楼主
方法1:
while((CARD_IN)&&(p<16))
                {
                        //读16字节
                        ReadMainMem(p,buff,16);  //读IC卡主存
                        BreakOperate();
                        Delay10us();
                        for(i = 0;i <= 15; i++)
                                printhex(buff);
                        printf("\n");
                }
               
方法2:               
while((CARD_IN)&&(p<16))
                {
                        //读16字节
                        ReadMainMem(p,buff,16);  //读IC卡主存
                        BreakOperate();
                        Delay10us();
                        for(i = 0; i < 16; i ++)
                           {
                                                SBUF = buff;
                              while(!TI);
                              TI=0;
                           }
                }       
               
               
void printhex(unsigned char hex)//以十六进制格式输出1个字节
{
        unsigned char c;
        c=hex;
        c=c>>4;
        printchar(c);
        c=hex;
        c=c&0x0F;
        printchar(c);
}




请教:
我用方法1 232 串口软件里显示的:

A2131091FFFF8115FFFFFFFFFFFFFFFF

方法2 232 串口软件里显示的:
???????????

我想用方法 2 的方式把数据发到串口
数据用 10  进制的
那么  ReadMainMem(p,buff,16);  //读IC卡主存
读取到的 buff 怎么处理啊?

谢谢!

回复评论 (3)

buff 进行16进制转10进制
点赞  2008-3-26 15:30
很简单呐,方法1你自己转成了字符串,方法2 你得让串口软件也按16进制显示就是了。
点赞  2008-3-26 22:55
自己会转的。。
点赞  2008-3-27 10:20
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复