Keil UV4 BUG(带字库液晶不能显示“数、正、过”问题的请看)
Keil UV3一直存在汉字显示(0xFD)的bug,以前在用到带字库的12864液晶的时候,“数”字总是不能正常显示,后来有网友告诉我这是keil的bug,解决掉了。后来keil升级了,我也换了新版本Keil UV4,把Keil UV3存在汉字显示bug的这个问题给忘记了,最近又用到12864液晶,发现Keil UV4编译出来的程序还是不能正常显示“数”字,又去查了一遍液晶说明书里的字库,发现里面有“数”字,突然想起来Keil UV3的bug,然后照以前的办法修改了Keil UV4的bug,现在显示正常了。
在这里给大家提个醒,Keil升级成UV4了,但是UV3的bug却遗留着,有用到带字库的液晶,赶紧去把这个问题解决掉!
解决办法:用十六进制编辑软件HexEdit打开Keil安装目录/keil/c51/bin/c51.exe,搜索80FBFD,改为80FBFF即可。
编译器没有修改之前不能正常显示
修改了bug显示正常了
“三”的机内码是C8FD,“数”的机内码是CAFD,“过”的机内码是B9FD,我试过了,只要是机内码后两位是FD的都不能显示,修改了bug就可以了。
没有修改bug三不能显示 (原文件名:图片_0~1.JPG)
修改了bug显示正常了 (原文件名:图片_0~1.JPG)
在此我也把ST7920的说明书上传,可以查看一下汉字机内码表st7920中文数据手册.pdfourdev_671134YUMHPO.pdf(文件大小:1.64M)
这个问题早就遇到过。是编译器的问题。
点击此处下载 ourdev_673840SD8X3K.rar(文件大小:10K) (原文件名:ccKeilVxx.rar)
将文件解压后放入keil/c51/bin文件夹运行即可。
keil 不认为是bug
http://www.keil.com/support/docs/2618.htm
我现在已经不打补丁了,免得出个新版本不支持,写的时候避免吧
用内码代替,即例如
printf ("Hello World \xca\xfd \n"); /* Print "Hello World 数" */
下面的是来自Keil官方的解决方法
http://www.keil.com/support/docs/2618.htm
GENERAL: COMPILER IGNORES 0XFD, 0XFE, 0XFF VALUES IN STRINGS
Information in this article applies to:
* C166 Compiler All Versions
* Cx51 Compiler All Versions
* C251 Compiler All Versions
QUESTION
I have a problem with the interpretation of Russian strings in the Keil C51 compiler. Some Russian characters are using the encoding 0xFD. It looks like this encoding is ignored by the compiler and is not included in the program code.
Example:
code char RussianString[] = "??? ????";
Why does this problem exist and how can I avoid this behavior?
ANSWER
The character encodings 0xFD, 0xFE, and 0xFF are used internally by the C compiler. The ANSI standard only requires support for ASCII characters in the range 0x00 - 0x7F.
You may insert these characters by using HEX encodings in the string as follows:
code char RussianString[] = "My Text" "\xFD";
A simple text replacement which replaces all 0xFD characters with the string '" "\xFD' should do the job.
对于这个BUG建议还是不要修改软件,因为不确定在某些特定条件下是否会引起莫名奇妙的其他问题,而且涉及到这个BUG的汉字不多,下面是从GB2312中抽了出来:
褒 饼 昌 除 待 谍 洱 俘 庚 过
糊 积 箭 烬 君 魁 例 笼 慢 谬
凝 琵 讫 驱 三 升 数 她 听 妄
锡 淆 旋 妖 引 育 札 正 铸
佚 冽 邶 埤 荦 蔟 摭 啐 帻 猃
恺 泯 潺 妪 纨 琮 椠 辇 挲 臊
忑 睚 铨 稞 瘕 颀 螨 簖 酏 觚
鳊 鼾
碰到这些字,建议手动处理一下就好了!
Keil UV4 BUG(带字库液晶不能显示“数、正、过”问题的请看)的更多相关文章
- 单片机中不带字库LCD液晶屏显示少量汉字
单片机中不带字库LCD液晶屏如何显示少量汉字,一般显示汉字的方法有1.使用带字库的LCD屏,2.通过SD 卡或者外挂spi flash存中文字库,3.直接将需要的汉字取模存入mcu的flash中. 第 ...
- STM32实战应用(一)——1602蓝牙时钟1液晶的显示测试
前言 从51到STM32F4学习这么久了,总算找到点头绪了,目前学习了GPIO,中断,定时器,看门狗的基本使用,所以想试着看看能不能做个什么东西,就是想复习一下最近学习的知识.正好上学期单片机课程设计 ...
- AC日记——【模板】分块/带修改莫队(数颜色) 洛谷 P1903
[模板]分块/带修改莫队(数颜色) 思路: 带修改莫队: (伏地膜xxy): 代码: #include <bits/stdc++.h> using namespace std; #defi ...
- 莫队 [洛谷2709] 小B的询问[洛谷1903]【模板】分块/带修改莫队(数颜色)
莫队--------一个优雅的暴力 莫队是一个可以在O(n√n)内求出绝大部分无修改的离线的区间问题的答案(只要问题满足转移是O(1)的)即你已知区间[l,r]的解,能在O(1)的时间内求出[l-1, ...
- 嵌入式Qt4.8.0支持ttf字库,并显示中文
引言 最近在做QT项目发现中文没法显示,于是百度QT嵌入式显示中文,基本上提示的都是把ttf字库转换为QPF(QT专门支持二进制的),发现这个qpf本身制作就很麻烦,按照网上的做法实实在在来了一边,发 ...
- 使用opencv调用24*24点阵字库和8*16ASCII字库在图片显示文字数字
课程实验:编程读汉字点阵字库,把自己的名字和学号叠加到图片的右下位置. 主要步骤分为三部分 第一部分:读取图片(文件读取) 第二部分:读取文字并从字库中提取相应的编码(字库的存储原理) 第三部分:将相 ...
- bug -- android 7.0 popwindow显示位置异常情况解决
android 7.0 popwindow显示位置异常,在android7.1官方进行解决了,但是还是要多7.0的bug进行解决,我的解决方案里面通过重写popwindow进行适配: import a ...
- 51单片机 | 实现SMC1602液晶屏显示实例
———————————————————————————————————————————— LCD1602 - - - - - - - - - - - - - - - - - - - - - - - - ...
- keil uV4一个project内各个后缀名文件的作用
1 test1 无后缀文件,这个是终于生成的文件.仅仅要有这个文件KEIL就能够软件仿真,不能打开 2 test1.hex 这个文件能够直接下载到单片机里,他就是从无后缀文件test1里提取的,去掉了 ...
随机推荐
- Qt修改文件内容
在用Qt进行嵌入式开发的时候,有时需要通过界面永久的改变ip地址等网卡信息.此时只能修改系统中包含网卡信息的文件,下图红框中所示就是文件中的网卡信息. 那么如何修改这四行呢,我的做法是先打开该文本文件 ...
- heritrix 3.2.0 -- 环境搭建
heritrix作为一个比较经典的开源爬虫,写这篇文章目的是因为,3.X之后的heritrix的介绍以及配置的文章比较少了. heritrix 3.x 以后使用maven 2配置jar包引用,但是总是 ...
- Mysql 分别按月, 日为组group,进行统计排序order
在数据库中我们经经常使用sql语句对表进行简单的统计排序,对于日期字段.我们能够简单的对其进行order. 对于复杂一点的能够按日期中的年.月,日分别进行group,order. 按年份进行group ...
- 百度地图 Android SDK - 检索功能使用的简单演示样例
百度地图 SDK 不仅为广大开发人员提供了炫酷的地图展示效果.丰富的覆盖物图层,更为广大开发人员提供了多种 LBS 检索的能力. 通过这些接口,开发人员能够轻松的訪问百度的 LBS 数据,丰富自己的移 ...
- 基于RSA的加密/解密示例C#代码
using System;using System.Security.Cryptography;using System.Text; class RSACSPSample{ static void M ...
- iOS8 Core Image In Swift:人脸检测以及马赛克
iOS8 Core Image In Swift:自动改善图像以及内置滤镜的使用 iOS8 Core Image In Swift:更复杂的滤镜 iOS8 Core Image In Swift:人脸 ...
- Thread.sleep(0)的意义& 多线程详解
我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题: 假设现在是 2008-4-7 12:00:00.000,如果我调用 ...
- asp.net页面按Enter键IE不提交表单
//当按下回车键时,让指定的按钮获取指定的文本框的事件 this.txtFNick.Attributes.Add("onkeydown", " ...
- 第二章 Android Studio使用第三方模拟器
1.为什么要使用第三方模拟器 Android Studio自带模拟器,相对Eclipse来说项目启动速度的确快了很多倍,提高了开发效率.但和第三方模拟器进行对比的话,还是第三方的模拟器运行速度更快些. ...
- Eclipse闪退解决办法
解决方式: 1.通过在命令行中输入“where java”,找到除jdk目录下的所有java相关程序,直接删掉(一般会在C:\WINDOWS\system32下) 2.内存不足,打开Eclipse目录 ...