找回密码
 立即注册
查看: 392|回复: 8

KEIL 中文支持 可能存在bug,不能识别汉字“数 ”|已解决

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-03-20 10:41:53

6

主题

33

回帖

288

积分

中级会员

积分
288
发表于 2025-2-16 23:55:02 | 显示全部楼层 |阅读模式
各位大侠:
KEIL 中文支持 可能存在bug,不能识别汉字“数 ”。经串口测试,不能计算汉字“数”的内码,其它汉字还没有发现异常。
用Keil编译,测试多次,均出现如下问题,更换板子,还是如此,不知道是什么原因。但是,用CodeBlock测试,反而正常。
测试函数一:

void printGBK(const char *hanzi) {
        int i;
    unsigned char *p = (unsigned char *)hanzi;
    for (i = 0; i < strlen(hanzi); i++) {
        printf("内码= %X ", p);
    }
    printf("\n");
}

main()
{

const char *hanzi = "数; //
  while (1)
        {

printf("GBK编码汉字是\"%s\" 是", hanzi);
    printGBK(hanzi);
}
}
测试函数二:


// 函数用于输出输入字符串中每个汉字的 GBK 内码
void print_gbk_codes(const char *str) {
        int i;
    int len = strlen(str);
    for (i = 0; i < len; ) {
        if ((unsigned char)str < 0x80) {
            // 处理 ASCII 字符(单字节)
            printf("ASCII 字符: %c, 内码: %02X\n", str, (unsigned char)str);
            i++;
        } else {
            // 处理 GBK 汉字(双字节)
            if (i + 1 < len) {
                printf("汉字: %c%c, GBK 内码: %02X %02X\n", str, str[i + 1], (unsigned char)str, (unsigned char)str[i + 1]);
                i += 2;
            } else {
                // 遇到不完整的 GBK 编码,这里简单提示
                printf("遇到不完整的 GBK 编码,可能输入有误。\n");
                break;
            }
        }
    }
}

测试函数三:

void Get_HzMat(char *color,char *mat,u8 size)

{                    
        unsigned char qh,ql;
        unsigned char i;                                          
        unsigned long foffset;
        u8 csize=(size/8+((size%8)?1:0))*(size);//得到字体一个字符对应点阵集所占的字节数         
        qh=*color;
        ql=*(++color);
                printf("%x  %x\r\n",qh,ql);
        if(qh<0x81||ql<0x40||ql==0xff||qh==0xff)//非 常用汉字
        {                       
            for(i=0;i<csize;i++)*mat++=0x00;//填充满格
            return; //结束访问
        }         
        if(ql<0x7f)ql-=0x40;//注意!
        else ql-=0x41;
        qh-=0x81;   
        
        foffset=((unsigned long)190*qh+ql)*csize;        //得到字库中的字节偏移量                    
        printf("foffset= %lu \r\n",foffset);
        
                                                                                                   
}  

主循环中:
Show_Str(30,160,220,16,"数量",MAGENTA ,16,0);






串口助手打印输出结果

串口助手打印输出结果
屏幕截图 2025-02-17 000129.png
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-03-20 10:41:53

6

主题

33

回帖

288

积分

中级会员

积分
288
发表于 2025-2-16 23:56:47 | 显示全部楼层
已经换了两款STC32G12K128板子,都是如此
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:194
  • 最近打卡:2025-05-02 01:39:20
已绑定手机

5

主题

39

回帖

788

积分

高级会员

积分
788
发表于 2025-2-17 00:22:31 | 显示全部楼层

屏幕截图2025-02-17002207.png

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:75
  • 最近打卡:2025-05-01 09:04:57
已绑定手机

3

主题

18

回帖

385

积分

中级会员

积分
385
发表于 2025-2-17 07:47:56 | 显示全部楼层
老掉牙的问题了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:518
  • 最近打卡:2025-05-01 05:52:49
已绑定手机

46

主题

1694

回帖

2540

积分

金牌会员

积分
2540
发表于 2025-2-17 08:16:41 | 显示全部楼层
这个是已知问题,是keil的问题
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-29 08:28:25
已绑定手机

17

主题

446

回帖

1173

积分

金牌会员

积分
1173
发表于 2025-2-17 08:24:39 | 显示全部楼层
这个是KEIL的BUG,玩51的基本都知道
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:375
  • 最近打卡:2025-04-26 15:51:33
已绑定手机

27

主题

301

回帖

822

积分

高级会员

积分
822
发表于 2025-2-17 08:50:48 | 显示全部楼层
的确是。\xfd 解决
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2025-04-30 10:59:33

25

主题

1154

回帖

2391

积分

超级版主

积分
2391
发表于 2025-2-17 08:57:46 | 显示全部楼层
1:【新提醒】串口发送相关(编译器0xFD问题) - 仿真/编译器/汇编器/头文件 国芯技术交流网站 - AI32位8051交流社区  https://www.stcaimcu.com/forum.p ... 1056&highlight=0xfd
2:【新提醒】关于数据手册里对0xFD问题的建议 - 问题反馈:ISP软件/头文件/单片机数据手册规格书等 国芯技术交流网站 - AI32位8051交流社区  https://www.stcaimcu.com/forum.p ... 2562&highlight=0xfd
    截图202502170858096758.jpg 截图202502170858301905.jpg
STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-03-20 10:41:53

6

主题

33

回帖

288

积分

中级会员

积分
288
发表于 2025-2-17 10:05:17 | 显示全部楼层

不好意思,忘了,已经解决
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:42 , Processed in 0.164446 second(s), 105 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表