佚名通过本文主要向大家介绍了keil编译问题,keil编译,keil编译错误,keil编译目标未创建,keil编译按钮等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: keil 编译遇到的问题
描述:
用STC的单片机控制个12864屏,刚开始调试显示汉字和英文都正常。后要显示“计数”时,出现“计室”的错误文字。再测试,发现当出现“三”时也会出现错误。
测试屏里字库是有这两个字的,测试方法是查找字码,用WriteDataLCD直接发字码高低字节。
【疑点、重点】:编译时发现,当出现“数”或是“三”时,编译出来的就会比用其他字代替时少1个字节。比如Print(“计数”);用Print(“计时”);替换。
【请教】
1、请大家帮我分析下,是怎么回事。
2、用什么方法能看到编译Print(“计数”);这个编译结果?想查看下编译的字码出了什么问题。
函数(显示位置定位是另一个函数,且无显示位置的夸行等异常)
void Print(u8 code *str)
{
while(*str!='\0')
{
WriteDataLCD(*str);
str++;
}
}
解决方案1:
描述:
KEIL,编译错误,12864
软件版本uVision V5.14.1用STC的单片机控制个12864屏,刚开始调试显示汉字和英文都正常。后要显示“计数”时,出现“计室”的错误文字。再测试,发现当出现“三”时也会出现错误。
测试屏里字库是有这两个字的,测试方法是查找字码,用WriteDataLCD直接发字码高低字节。
【疑点、重点】:编译时发现,当出现“数”或是“三”时,编译出来的就会比用其他字代替时少1个字节。比如Print(“计数”);用Print(“计时”);替换。
【请教】
1、请大家帮我分析下,是怎么回事。
2、用什么方法能看到编译Print(“计数”);这个编译结果?想查看下编译的字码出了什么问题。
函数(显示位置定位是另一个函数,且无显示位置的夸行等异常)
void Print(u8 code *str)
{
while(*str!='\0')
{
WriteDataLCD(*str);
str++;
}
}
解决方案1:
编译器BUG,有现成补丁
http://blog.chinaunix.net/uid-20734916-id-3988575.html