OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10484|回复: 13

关于显示32*32大字体

[复制链接]

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-4-30
在线时间
2 小时
发表于 2015-5-8 22:16:02 | 显示全部楼层 |阅读模式
5金钱
我看了论坛所有关于显示大字体的帖子,目前程序已经改好。。。
用字库软件,生成好好几种字体。。分别是:黑体,宋体,仿宋。。下载到开发板,都显示不完全。。。
请高手帮我看下,是什么问题。。
程序用的是:战舰开发板 实验41,汉字显示实验。。。我把LCD换成大屏幕。。。把主程序中更新完字库后的显示语句,都屏蔽了,只剩下其中一条,用来调试




最佳答案

查看完整内容[请看2#楼]

参考别人的:http://www.openedv.com/posts/list/16673.htm
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-8 22:16:03 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-4-30
在线时间
2 小时
 楼主| 发表于 2015-5-8 22:16:03 | 显示全部楼层
看了这个帖子,最终解决了!
http://www.openedv.com/posts/list/12030.htm

说下方法,希望对其他有同样问题的朋友有帮助。。
出现这个问题,不是字库的问题,是TEXT里边的fontupd.c,text.c没修改好。。。
我直接下载了那个网友的附件,然后,替换了TEXT文件,就显示正常了。。。

附件是那个网友修改的代码!
字库在FON那个文件。。。

每天都会遇到新问题,每天也都在解决问题。。。感觉进步好快。。。

实验41 汉字显示实验111.zip

3.97 MB, 下载次数: 671

回复

使用道具 举报

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-4-30
在线时间
2 小时
 楼主| 发表于 2015-5-8 22:16:03 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
问题搞定了。。。修改了ascii。。。
写下来,给以后遇到同样问题的朋友看。。。
回复

使用道具 举报

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-4-30
在线时间
2 小时
 楼主| 发表于 2015-5-8 22:18:15 | 显示全部楼层
while(font_init()||key==KEY_UP) //检查字库
{
UPD:    
LCD_Clear(WHITE);     //清屏
  POINT_COLOR=RED; //设置字体为红色           
LCD_ShowString(60,50,200,16,16,"Warship STM32");
while(SD_Initialize()) //检测SD卡
{
LCD_ShowString(60,70,200,16,16,"SD Card Failed!");
delay_ms(200);
LCD_Fill(60,70,200+60,70+16,WHITE);
delay_ms(200);     
}       
LCD_ShowString(60,70,200,16,16,"SD Card OK");
LCD_ShowString(60,90,200,16,16,"Font Updating...");
key=update_font(20,110,16,0);//从SD卡更新
while(key)//更新失败
{     
LCD_ShowString(60,110,200,16,16,"Font Update Failed!");
delay_ms(200);
LCD_Fill(20,110,200+20,110+16,WHITE);
delay_ms(200);        
}    
LCD_ShowString(60,110,200,16,16,"Font Update Success!");
delay_ms(1500);
LCD_Clear(WHITE);//清屏        
}   
POINT_COLOR=RED;      
Show_Str(60,50,200,32,"STM32开发板",32,0);       
//  Show_Str(60,70,200,32,"GBK字库测试程序",32,0);       
//  Show_Str(60,90,200,16,"正点原子@ALIENTEK",16,0);       
//  Show_Str(60,110,200,16,"2012年9月18日",16,0);
//  Show_Str(60,130,200,16,"按KEY0,更新字库",16,0);
//   POINT_COLOR=BLUE;  
//  Show_Str(60,150,200,16,"内码高字节:",16,0);       
//  Show_Str(60,170,200,16,"内码低字节:",16,0);       
//  Show_Str(60,190,200,16,"对应汉字(16*16)为:",16,0);  
//  Show_Str(60,212,200,12,"对应汉字(12*12)为:",12,0);
//  Show_Str(60,224,200,16,"对应汉字(32*32)为:",32,0);
//  Show_Str(60,250,200,16,"汉字计数器:",16,0);
LCD_Fill(60,130,200+60,130+16,WHITE);   
while(1)
{
fontcnt=0;
for(i=0x81;i<0xff;i++)
{
fontx[0]=i;
LCD_ShowNum(148,150,i,3,24);//显示内码高字节    
for(j=0x40;j<0xfe;j++)
{
if(j==0x7f)continue;
fontcnt++;
//LCD_ShowNum(148,170,j,3,32);//显示内码低字节  
//LCD_ShowNum(148,230,fontcnt,5,16);//显示内码低字节  
  fontx[1]=j;
//Show_Font(204,190,fontx,16,0);   
//Show_Font(168,212,fontx,12,0);       
t=200;
while(t--)//延时,同时扫描按键
{
delay_ms(1);
key=KEY_Scan(0);
if(key==KEY_UP)goto UPD;
}
LED0=!LED0;
}   
}

}
为了调试方便,我把很多显示都给屏蔽了。。。
回复

使用道具 举报

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-4-30
在线时间
2 小时
 楼主| 发表于 2015-5-9 09:56:23 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
他的帖子,我看过好几遍,对我没有太大的参考价值。。。
目前,我的情况是,字库可以更新到开发板,但是显示有问题。。。我不知道是我的字库问题,还是我显示函数修改的有问题。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-9 23:01:44 | 显示全部楼层
回复【5楼】吃咯:
---------------------------------
恭喜
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-4-30
在线时间
2 小时
 楼主| 发表于 2015-5-10 10:27:41 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
现在,又遇到新问题了。。。32*32,汉字显示正常,如果是英文,或者是数字的话,就显示不正常。。
我还得继续寻找方法。。。
回复

使用道具 举报

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-4-30
在线时间
2 小时
 楼主| 发表于 2015-5-10 10:35:03 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
数字可以显示32*32吗???我试了32*32,以及24*24都不能正常显示,但是12*12以及16*16,都能正常显示。。。
应该是TEXT文件中的代码,还有问题吧???
具体是哪部分代码,控制数字显示???
回复

使用道具 举报

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-4-30
在线时间
2 小时
 楼主| 发表于 2015-5-10 10:35:42 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
要显示1,2,3。。。。。。类似的数字。。
回复

使用道具 举报

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-4-30
在线时间
2 小时
 楼主| 发表于 2015-5-10 10:38:05 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
//显示数字,高位为0,还是显示
//x,y:起点坐标
//num:数值(0~999999999);  
//len:长度(即要显示的位数)
//size:字体大小
//mode:
//[7]:0,不填充;1,填充0.
//[6:1]:保留
//[0]:0,非叠加显示;1,叠加显示.
void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u8 mode)
{  
u8 t,temp;
u8 enshow=0;    
for(t=0;t<len;t++)
{
temp=(num/LCD_Pow(10,len-t-1))%10;
if(enshow==0&&t<(len-1))
{
if(temp==0)
{
if(mode&0X80)LCD_ShowChar(x+(size/2)*t,y,'0',size,mode&0X01);  
else LCD_ShowChar(x+(size/2)*t,y,' ',size,mode&0X01);  
  continue;
}else enshow=1; 
   
}
  LCD_ShowChar(x+(size/2)*t,y,temp+'0',size,mode&0X01); 
}
}>
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-10 22:22:06 | 显示全部楼层
回复【11楼】吃咯:
---------------------------------
谢谢分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

32

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
617
金钱
617
注册时间
2013-1-16
在线时间
131 小时
发表于 2017-6-23 11:26:49 | 显示全部楼层
吃咯 发表于 2015-5-10 10:27
回复【6楼】正点原子:
---------------------------------
现在,又遇到新问题了。。。32*32,汉字显示正常 ...

可以给我一个参考么,我的32*32汉字怎么都显示不出来
回复

使用道具 举报

32

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
617
金钱
617
注册时间
2013-1-16
在线时间
131 小时
发表于 2017-6-23 11:27:07 | 显示全部楼层
吃咯 发表于 2015-5-10 10:27
回复【6楼】正点原子:
---------------------------------
现在,又遇到新问题了。。。32*32,汉字显示正常 ...

可以给我一个参考么,我的32*32汉字怎么都显示不出来
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-17 20:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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