找回密码
 立即注册
查看: 478|回复: 12

关于数据手册里对0xFD问题的建议

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-05-01 15:00:39

24

主题

305

回帖

2556

积分

荣誉版主

积分
2556
发表于 2024-12-9 11:09:36 | 显示全部楼层 |阅读模式

在数据手册里,关于Keil的0xFD问题的章节,解决FD问题,只给出了官方提供的在问题字符后面添加 “\xFD”的方法,以及列出了问题汉字的清单。

虽然可以解决问题,但是每次按照清单逐一比对,过程比较麻烦。

在AIapp-ISP里的文字生成工具里,有个更贴心的【自动修补】功能。qiang

因为如果在屏幕程序里需要输入汉字等字符,通常都会伴有先取模的过程;如果用的是字库芯片,把字符串一股脑放进去,也可以瞬间直观看到是哪个字符出的问题。

所以个人建议,既然是STC官方的数据手册,应该把这个独有的、更好用的方法,也介绍进去。一方面是更好推广自己的软件,更重要的是这个功能的确可以大大减轻查找问题字符时的工作量。

(关于解决0xFD问题,搜遍论坛都没有提及这个方法的内容)

image.png

image.png

////////////////////////////////////////////////////////////////////////////////////////

顺便,手册里给出了GB2312编码里的所有问题汉字的清单

根据编码表,还有两个全角字符的八位,也是FD:

向下箭头 "↓",和右大括号 "}"

也是比较常用的字符,可以补充进问题字符的清单里。

因为在实际使用中,不论是自己取模,还是用带字库的ST7920的LCD12864(包含的是GB2312字库),也会遇到同样的问题。

image.png

image.png

////////////////////////////////////////////////////////////////////////////////////////

令外感觉有意思的是,虽然官方解释是字符编码0xFD、0xFE和0xFF由C编译器内部使用,但是实际只有编码低八位是 FD 的字符不正常,而 FE 的却没有影响。xieyanxiao

image.png

能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-12-9 11:16:33 | 显示全部楼层

到不如建议一下官方 点阵和字体宽度别限制这么死。。。32有点儿小了,,

点评

对OLED屏幕来说32还好,但是对于分辨率更高的TFT屏幕,32确实有点儿不大够用。 这个在之前的帖子里也建议过,当时好像说的是需要开更大缓存,最后折中到了32。 好在还有其它取模工具当替补,就没再继续纠结这个问题  详情 回复 发表于 2024-12-9 11:36
对OLED屏幕来说32还好,但是对于分辨率更高的TFT屏幕,32确实有点儿不大够用。 这个在之前的帖子里也建议过,当时好像说的是需要开更大缓存,最后折中到了32。 好在还有其它取模工具当替补,就没再继续纠结这个问题  详情 回复 发表于 2024-12-9 11:31
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

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

19

主题

3190

回帖

4866

积分

论坛元老

积分
4866
发表于 2024-12-9 11:24:02 | 显示全部楼层
还不知道有这功能啊,真贴心啊

点评

对啊 这个功能很早就藏在文字工具里了,一直这么低调,太可惜了  详情 回复 发表于 2024-12-9 11:35
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-05-01 15:00:39

24

主题

305

回帖

2556

积分

荣誉版主

积分
2556
发表于 2024-12-9 11:31:56 | 显示全部楼层

对OLED屏幕来说32还好,但是对于分辨率更高的TFT屏幕,32确实有点儿不大够用。
这个在之前的帖子里也建议过,当时好像说的是需要开更大缓存,最后折中到了32。

好在还有其它取模工具当替补,就没再继续纠结这个问题。

能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-05-01 15:00:39

24

主题

305

回帖

2556

积分

荣誉版主

积分
2556
发表于 2024-12-9 11:35:32 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=128154&ptid=12562][color=#999999]soma 发表于 2024-12-9 11:24[/color][/url][/size] 还不知道有这功能啊,真贴心啊[/quote]

对啊jingya 这个功能很早就藏在文字工具里了,一直这么低调,太可惜了

能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-05-01 15:00:39

24

主题

305

回帖

2556

积分

荣誉版主

积分
2556
发表于 2024-12-9 11:36:51 | 显示全部楼层

网页卡了,发重复了
能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-12-9 11:39:46 | 显示全部楼层
大*** 发表于 2024-12-9 11:31
对OLED屏幕来说32还好,但是对于分辨率更高的TFT屏幕,32确实有点儿不大够用。
这个在之前的帖子里也建议过 ...

问题就在这里了,市面上一直都是存在同类型的工具,,只要STC这里能涵盖其他工具的功能,并且能优化那些工具的操作,那绝对吹爆了,可实际上看起来挺好的,,真正用起来又差点儿意思。就很难受。纠结难受就在这里了。。那你说如果还需要其他工具来补充,那我为什么不直接用其他工具呢?

果真是专业的事情让专业的来。。。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

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

17

主题

446

回帖

1173

积分

金牌会员

积分
1173
发表于 2024-12-9 13:50:32 | 显示全部楼层
对于显示乱码的字符,自动添加了0xFD,多了个字符,明显产生了不对齐问题,初始化的数据比没有乱码的字符多了个字节,显示的时候为什么都没有影响呢,我还真不知道是什么原因
struct FONT_DATA
{
    char txt[2];
    unsigned char dat[28];
};

struct FONT_DATA code Font_Data[] =
{
  "数\xFD",0x10,0x40,0x92,0x40,0x54,0x40,0xfe,0x78,0x38,0x90,0x54,0x90,0x93,0x50,0x20,0x50, /* 0 */
       0xfc,0x50,0x24,0x50,0x64,0x20,0x18,0x20,0x34,0x50,0xc2,0x88,
};

点评

这个就是C51和C251版的Keil里的0xFD问题,STC数据手册里有解释 这是Keil官方的解释 https://developer.arm.com/documentation/ka004187/  详情 回复 发表于 2024-12-9 14:47
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-05-01 15:00:39

24

主题

305

回帖

2556

积分

荣誉版主

积分
2556
发表于 2024-12-9 14:47:16 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=128220&ptid=12562][color=#999999]bkeuqoaq 发表于 2024-12-9 13:50[/color][/url][/size] 对于显示乱码的字符,自动添加了0xFD,多了个字符,明显产生了不对齐问题,初始化的数据比没有乱码的字符多了个 ...[/quote]

这个就是C51和C251版的Keil里的0xFD问题,STC数据手册里有解释

这是Keil官方的解释 https://developer.arm.com/documentation/ka004187/

image.png

能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复 支持 反对

使用道具 举报 送花

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

17

主题

446

回帖

1173

积分

金牌会员

积分
1173
发表于 2024-12-9 14:49:28 | 显示全部楼层
大*** 发表于 2024-12-9 14:47
这个就是C51和C251版的Keil里的0xFD问题,STC数据手册里有解释
这是Keil官方的解释 https://developer.ar ...

自己编译一下看反汇编明白了,谢谢!
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:14 , Processed in 0.164538 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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