OpenEdv-开源电子网

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

LCD显示的字体大小如何调整

[复制链接]

51

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
347
金钱
347
注册时间
2012-5-20
在线时间
0 小时
发表于 2012-7-5 09:06:08 | 显示全部楼层 |阅读模式
1、  LCD的程序都看了 最后主程序显示感觉16的字体有点小,不知道在哪地方可以进行调整,或者哪个子程序是关于调节大小的,我照了好久没找到哪部分写道字体大小的,16的就是最大了吗求指教
2、另外还有一个请教 是不是显示的字符 都是根据font.h内有的才能显示,因为我发现输入汉字显示不了,想求教是不是这个原因
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-7-5 10:25:11 | 显示全部楼层
回复【楼主位】beisiqiu:
---------------------------------
1,扩展例程有显示大汉字的例子.
2,没有字库,怎么显示?凡是都讲究有理可依,CPU没你那么聪明,知道汉字怎么写,CPU能做的就是执行指令罢了,柴米油盐都需要你提供.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
347
金钱
347
注册时间
2012-5-20
在线时间
0 小时
 楼主| 发表于 2012-7-5 15:24:16 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
显示大汉字的话按照同样代码可以显示大字母吗 还没学习到后面 想先向您了解一下
回复 支持 反对

使用道具 举报

14

主题

173

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2011-10-14
在线时间
2 小时
发表于 2012-7-5 16:33:07 | 显示全部楼层
要做大字的字库
回复 支持 反对

使用道具 举报

14

主题

173

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2011-10-14
在线时间
2 小时
发表于 2012-7-5 16:33:28 | 显示全部楼层
显示最终都是画点啊
回复 支持 反对

使用道具 举报

59

主题

189

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
451
金钱
451
注册时间
2012-4-11
在线时间
1 小时
发表于 2012-7-5 18:56:59 | 显示全部楼层
用取模软件取模放到自己建立的字库里面 然后调用显示即可!!
回复 支持 反对

使用道具 举报

51

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
347
金钱
347
注册时间
2012-5-20
在线时间
0 小时
 楼主| 发表于 2012-7-6 08:48:32 | 显示全部楼层
回复【6楼】shenhao7752376:
---------------------------------
1、您的意思是自己在建立一个向font.h文件内,类似1608 1206的字库吗?
如何是这样,我用软件做了一个大小是字宽字高各为18的A,生成字模后为
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x80,0x03,0x80,0x06,0x80,0x06,0x40,0x06,0x40,0x0C,0x40,0x0C,0x40,0x0C,0xC0,0x0F,0x20,0x18,0x20,0x18},
{0x20,0x18,0x20,0x30,0x30,0x30,0x78,0x78,0x00,0x00,0x00,0x00,0x00,0x00},/*"A",0*/
显示一个A要有两个{}{}的元素,而且对应的列数还不一样,我不太会。我没建立出来类似这样的const unsigner char asc2_18_18[2][?],求您指教
2、我不知道和软件设置有没有关系,当我将每行显示数据设置为80后,就变成一行了{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x80,0x03,0x80,0x06,0x80,0x06,0x40,0x06,0x40,0x0C,0x40,0x0C,0x40,0x0C,0xC0,0x0F,0x20,0x18,0x20,0x18,
0x20,0x18,0x20,0x30,0x30,0x30,0x78,0x78,0x00,0x00,0x00,0x00,0x00,0x00},/*"A",0*/
回复 支持 反对

使用道具 举报

51

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
347
金钱
347
注册时间
2012-5-20
在线时间
0 小时
 楼主| 发表于 2012-7-6 09:04:17 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
请教师兄,我回答的5楼朋友的对不对
 回复【6楼】shenhao7752376: 
--------------------------------- 
1、您的意思是自己在建立一个向font.h文件内,类似1608 1206的字库吗? 
如何是这样,我用软件做了一个大小是字宽字高各为18的A,生成字模后为
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x80,0x03,0x80,0x06,0x80,0x06,0x40,0x06,0x40,0x0C,0x40,0x0C,0x40,0x0C,0xC0,0x0F,0x20,0x18,0x20,0x18},
{0x20,0x18,0x20,0x30,0x30,0x30,0x78,0x78,0x00,0x00,0x00,0x00,0x00,0x00},/*"A",0*/
显示一个A要有两个{}{}的元素,而且对应的列数还不一样,我不太会。我没建立出来类似这样的const unsigner char asc2_18_18[2][?],求您指教
2、我不知道和软件设置有没有关系,当我将每行显示数据设置为80后,就变成一行了{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x80,0x03,0x80,0x06,0x80,0x06,0x40,0x06,0x40,0x0C,0x40,0x0C,0x40,0x0C,0xC0,0x0F,0x20,0x18,0x20,0x18,
0x20,0x18,0x20,0x30,0x30,0x30,0x78,0x78,0x00,0x00,0x00,0x00,0x00,0x00},/*"A",0*/
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-7-6 09:17:26 | 显示全部楼层
回复【8楼】beisiqiu:
---------------------------------
先弄懂我们的,再改造我们的.
你都还不懂字库是怎么做的,多说无益...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
347
金钱
347
注册时间
2012-5-20
在线时间
0 小时
 楼主| 发表于 2012-7-6 15:41:59 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
师兄 在您的指导下 知道字库是怎么建立的了 也知道取模是怎么回事了 
我想问您一下 for(t=0,t=size/2;t++)
{
if(temp&0x01)POINT_COLOR=colortemp;
else OINT_COLOR=BACK_COLOR;
LCD_DrawPoint(x,y);
temp>>=1;
x++;
}这里的t从0到size/2,这个size/2什么意思呢,假设size=16,那它循环8次的意义是什么呢,这个程序我没太看懂,
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-7-6 16:56:01 | 显示全部楼层
这代码是针对12*12或者16*16的字体有效的.
12*12的字体,实际的ASCII字符就是6*12了.
16*16的,就是8*16了.
那么size/2,就是表示x坐标的长度.
循环8次就是画8个点.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
347
金钱
347
注册时间
2012-5-20
在线时间
0 小时
 楼主| 发表于 2012-7-6 17:18:21 | 显示全部楼层
回复【11楼】正点原子:
---------------------------------
您说的我理解了 那长宽各为18的话,就是9*18
size/2=9就是横坐标X的长度
循环9次画9个点。 
然后我建立了一个18*18的字库,取模后的数值我也比对了没错。但是没显示出来。
您能告诉我,怎么才能做到显示18*18的正确方法啊?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-7-6 17:29:17 | 显示全部楼层
这个代码不适用大于16*16的字体.
因为u8型的数据,不可能循环9次,最多循环8次.
如果要9次,你自己想办法吧,简单的很,改写我的代码即可.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
347
金钱
347
注册时间
2012-5-20
在线时间
0 小时
 楼主| 发表于 2012-7-7 15:25:03 | 显示全部楼层
回复【13楼】正点原子:
---------------------------------
下面是想做18*18字体的改动,18*18只显示!.调试没成功,想拜托师兄指教,下面的哪改错了,如何修改呢 红色为修改部分,请师兄帮忙,不胜感激
const unsigned char asc2_1808[2][36]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" " 0*/
{0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"!"1*/
};
ILI93xx.c文件改动
void LCD_ShowString(u16 x,u16 y,const u8 *p,u8 size )
{         
while(*p!='\0')   
      {       
        if(x>MAX_CHAR_POSX){x=0;y+=16;}
        if(y>MAX_CHAR_POSY){y=x=0;LCD_Clear(WHITE);}
        if(size==16) LCD_ShowChar(x,y,*p,16,1);        
        if(size==12) LCD_ShowChar(x,y,*p,12,1);
        if(size==18) LCD_ShowChar(x,y,*p,18,1); 
         x+=8;
         p++;
       }  
}
void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode)
{  
#if USE_HORIZONTAL==1
#define MAX_CHAR_POSX 312
#define MAX_CHAR_POSY 232 
#else     
#define MAX_CHAR_POSX 232
#define MAX_CHAR_POSY 312
#endif  
u8 temp,a=0; 
u8 pos,t;
u16 x0=x;
u16 colortemp=POINT_COLOR;       
 if(x>MAX_CHAR_POSX||y>MAX_CHAR_POSY)return;     
//设置窗口    
num=num-' ';//得到偏移后的值
if(!mode) //非叠加方式 
    { 
    for(pos=0;pos<size;pos++) 
        { 
        if(size==12||size==16) 
             {  
                if(size==12)temp=asc2_1206[num][pos];  //调用1206字体
                if(size==16)temp=asc2_1608[num][pos];  //调用1608字体
                for(t=0;t<size/2;t++)
                   {                 
                    if(temp&0x01)POINT_COLOR=colortemp;
                   else OINT_COLOR=BACK_COLOR;
                   LCD_DrawPoint(x,y);
                   temp>>=1; 
                   x++;
                  }
             } 
         if(size==18)
         { 
    
               temp=asc2_1808[num][a];  
                for(t=0;t<8;t++)
               {    
                            
                if(temp&0x01)POINT_COLOR=colortemp; 
                else OINT_COLOR=BACK_COLOR;
                LCD_DrawPoint(x,y);
                temp>>=1; 
                 x++;
                } 
                a++; 
                 temp=asc2_1808[num][a];  
                for(t=0;t<8;t++)

                {   
                temp=asc2_1808[num][a];             
                if(temp&0x01)POINT_COLOR=colortemp;
               else OINT_COLOR=BACK_COLOR; 
               LCD_DrawPoint(x,y);
               temp>>=1;  
               x++; 
               } 
                 a++; 


         }
x=x0;
y++;
   }
 }          
}  
主函数改动
int main(void)
{
   Stm32_Clock_Init(9);//系统时钟设置 
    delay_init(72); //延时初始化 
    uart_init(72,9600); //串口1初始化   
    LED_Init(); 
    LCD_Init(); 
    OINT_COLOR=YELLOW; 
    LCD_Clear(BLACK);  
     LCD_ShowString(30,110,"11haha#3034",16); 
    LCD_ShowString(30,50,"!",18); 
    LCD_ShowString(30,70,"11haha#3034",12); 
    LED0=!LED0;   
    delay_ms(1000);
    
}
以上的12和16都现显示正常,但是18不行,想拜托师兄,如果有时间帮忙指正一下。 万分感激。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-7-7 18:46:17 | 显示全部楼层
你看我们扩展例程的汉字怎么显示的?
24*24.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-7-7 18:46:48 | 显示全部楼层
//在指定位置 显示1个24*24的汉字
//(x,y):汉字显示的位置
//index:tfont数组里面的第几个汉字
//color:这个汉字的颜色
void Test_Show_CH_Font24(u16 x,u16 y,u8 index,u16 color)
{        
u8 temp,t,t1;
u16 y0=y;    
    for(t=0;t<72;t++)//每个24*24的汉字点阵 有72个字节
    {   
if(t<24)temp=tfont24[index*3][t];           //前24个字节
else if(t<48)temp=tfont24[index*3+1][t-24]; //中24个字节                           
        else temp=tfont24[index*3+2][t-48];         //后24个字节
    for(t1=0;t1<8;t1++)
{
if(temp&0x80)LCD_Draw_Point(x,y,color);//画实心点
else LCD_Draw_Point(x,y,BACK_COLOR);   //画空白点(使用背景色)
temp<<=1;
y++;
if((y-y0)==24)
{
y=y0;
x++;
break;
}
}    
    }          
}
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
347
金钱
347
注册时间
2012-5-20
在线时间
0 小时
 楼主| 发表于 2012-7-11 17:03:33 | 显示全部楼层
回复【16楼】正点原子:
---------------------------------
嗯 谢谢师兄 师兄有个小请求  我在修改18*18字体时 LCD显示都是同种状态 我想您是否可以帮我看一下我写得代码 看看我哪里逻辑错误了 因为只有我自己学 没人可以请教 希望您能帮我
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-7-11 17:23:34 | 显示全部楼层
没时间看代码,自己仿真调试吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
347
金钱
347
注册时间
2012-5-20
在线时间
0 小时
 楼主| 发表于 2012-7-11 18:13:27 | 显示全部楼层
嘿嘿 好用了 重新下载了一下 这个代码是对的 不知道那天是咋搞的 谢谢原子师兄 
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2012-7-16
在线时间
0 小时
发表于 2012-7-16 16:58:53 | 显示全部楼层
回复【19楼】beisiqiu:
---------------------------------
兄弟你实现了数字字体的大小的调整 ,可以参考一下你的代码嘛? 谢谢你。
回复 支持 反对

使用道具 举报

18

主题

158

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
400
金钱
400
注册时间
2011-11-23
在线时间
0 小时
发表于 2012-8-1 16:12:54 | 显示全部楼层
回复【20楼】liuminds:
---------------------------------
void Test_Show_CH_Font32(u16 x,u16 y,u8 index,u16 color)
{        
u8 temp,t,t1;
u16 y0=y;    
    for(t=0;t<128;t++)//每个32*32的汉字点阵 有128个字节
    {   
if(t<32)temp=tfont32[index*4][t];           //前24个字节
else if(t<64)temp=tfont32[index*4+1][t-32]; //中24个字节
else if(t<96)temp=tfont32[index*4+2][t-64];                  
        else temp=tfont32[index*4+3][t-96];         //后24个字节
    for(t1=0;t1<8;t1++)
{
if(temp&0x80)LCD_Draw_Point(x,y,color);//画实心点
else LCD_Draw_Point(x,y,BACK_COLOR);   //画空白点(使用背景色)
temp<<=1;
y++;
if((y-y0)==32)
{
y=y0;
x++;
break;
}
}    
    }          
}
//测试2个汉字显示函数
void TEST_FONT(void)
{
u8 t;
u8 x;
x=50;
for(t=0;t<4;t++)//6个汉字
{
Test_Show_CH_Font32(x,90,t,RED);
x+=32;
}
}
实现32*32的汉字显示,在原子大哥16*16上面改写就可以了
回复 支持 反对

使用道具 举报

2

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2012-8-31
在线时间
66 小时
发表于 2012-10-20 14:49:44 | 显示全部楼层
原子哥,例程用的哪个取模工具呀???您能不能传我一个。
我下载的不行~!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-10-20 22:39:22 | 显示全部楼层
回复【22楼】zhengwending:
---------------------------------
开发板光盘有的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

11

主题

71

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2014-1-3
在线时间
0 小时
发表于 2014-3-4 11:51:30 | 显示全部楼层
回复【23楼】正点原子:
---------------------------------
原子哥,你们的1206字体是在哪个软件取的模呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-3-4 17:07:34 | 显示全部楼层
回复【24楼】jidian0177:
---------------------------------
ASCII是:PCtoLCD2002
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

11

主题

71

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2014-1-3
在线时间
0 小时
发表于 2014-3-4 17:26:15 | 显示全部楼层
回复【25楼】正点原子:
---------------------------------
好的
回复 支持 反对

使用道具 举报

11

主题

71

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2014-1-3
在线时间
0 小时
发表于 2014-3-5 16:30:48 | 显示全部楼层
回复【21楼】shuilian007:
---------------------------------
void Test_Show_CH_Font48(u16 x,u16 y,u8 index,u16 color) 
{          
u8 temp,t,t1; 
u16 y0=y;      
    for(t=0;t<288;t++)//每个24*24的汉字点阵 有72个字节 
    {    
if(t<48)temp=tfont48[index*6][t];            
else if(t<96)temp=tfont48[index*6+1][t-48];                             
else if(t<144) temp=tfont48[index*6+2][t-96];         
else if(t<192) temp=tfont48[index*6+3][t-144];
else if(t<240) temp=tfont48[index*6+4][t-192];
else temp=tfont48[index*6+5][t-240]; 
    for(t1=0;t1<8;t1++) 

if(temp&0x80)LCD_Fast_DrawPoint(x,y,color);
else LCD_Fast_DrawPoint(x,y,BACK_COLOR);   
temp<<=1; 
y++; 
if((y-y0)==48) 

y=y0; 
x++; 
break; 

}     
}           
}   
参考你和原子大哥的程序,能正常显示24*24,,32*32的了,
我试着写48*48的字,虽然能显示,
但会外加出现一些乱码,能帮我看下,问题出现在哪里了么?谢谢啊!
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
发表于 2014-6-4 17:27:37 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
如何在mini板例程基础上改成能显示32*32的汉字的?32的尺寸字库已经更新进去了,32*16的字符已经能显示了,但是32*32的汉字还是不能显示,显示乱码
合肥-文盲
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-6-4 22:50:52 | 显示全部楼层
回复【28楼】合肥-文盲:
---------------------------------
最新的mini板(V3.0),支持12*12,16*16以及24*24字体了,32*32,就是依葫芦画瓢而已.
你下载下最新Mini板的资料学习下就好了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
发表于 2014-6-5 08:38:34 | 显示全部楼层
回复【29楼】正点原子:
---------------------------------
嗯  谢谢,我的就是最新mini板资料,可能就是flash溢出了
合肥-文盲
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
发表于 2014-6-10 11:07:42 | 显示全部楼层
回复【21楼】shuilian007:
---------------------------------
你的32*32的汉字显示有没有有的汉字显示不全的现象,能分享下你的32*32的汉字字库文件吗?我想试下是不是字库的问题
合肥-文盲
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
发表于 2014-6-10 11:08:44 | 显示全部楼层
回复【27楼】jidian0177:
---------------------------------
http://www.openedv.com/posts/list/34039.htm 
这个是我显示的32*32汉字,有的汉字显示不全,你看你有没有这问题
合肥-文盲
回复 支持 反对

使用道具 举报

10

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2013-10-20
在线时间
0 小时
发表于 2014-8-10 12:09:14 | 显示全部楼层
回复【29楼】正点原子:
---------------------------------
我截取了LS一部分代码,我也有些疑问
 for(t=0,t=size/2;t++) 

if(temp&0x01)POINT_COLOR=colortemp; 
else OINT_COLOR=BACK_COLOR; 
LCD_DrawPoint(x,y); 
temp>>=1; 
x++; 

原子哥,对于上述函数,
if(temp&0x01)判断第一位是何效果?
求学不怕苦才能坚持到彼岸
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-8-10 23:27:12 | 显示全部楼层
回复【33楼】爱在暖晴天:
---------------------------------
请自己测试.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2013-10-20
在线时间
0 小时
发表于 2014-8-11 10:14:30 | 显示全部楼层
回复【34楼】正点原子:
---------------------------------
额。。。。。好吧,原子哥回答果然犀利
求学不怕苦才能坚持到彼岸
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-8-11 19:02:51 | 显示全部楼层
回复【35楼】爱在暖晴天:
---------------------------------
希望大家多自己动手....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

15

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2015-2-7
在线时间
4 小时
发表于 2015-2-7 21:39:03 | 显示全部楼层
回复【19楼】beisiqiu:
---------------------------------
师兄,能留下联系方式么? 你的问题如何解决的,我现在也遇到同样的问题;
回复 支持 反对

使用道具 举报

6

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2013-12-14
在线时间
4 小时
发表于 2015-3-6 14:13:32 | 显示全部楼层
回复【3楼】beisiqiu:
---------------------------------
原子哥,请问如何显示大汉字?这个例程在哪里啊?我怎么没找到啊,谢谢
回复 支持 反对

使用道具 举报

1

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
357
金钱
357
注册时间
2015-12-11
在线时间
79 小时
发表于 2015-12-17 18:56:32 | 显示全部楼层
回复【27楼】jidian0177:
---------------------------------
问题好多,
1.U8 T。可你竟然t<288
2.if(t<48)temp=tfont48[index*6][t];             
else if(t<96)temp=tfont48[index*6+1][t-48];                              
else if(t<144) temp=tfont48[index*6+2][t-96];          
else if(t<192) temp=tfont48[index*6+3][t-144]; 
else if(t<240) temp=tfont48[index*6+4][t-192];
这行代码,数字并不是因为48大小就是48,而且你的代码生成工具,和你的TFONT48数组的值确定
回复 支持 反对

使用道具 举报

1

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
357
金钱
357
注册时间
2015-12-11
在线时间
79 小时
发表于 2015-12-17 20:31:39 | 显示全部楼层
根据前面的师兄改的,生成软件每行36个字符,70*70的字,本地测试成功
void Test_Show_CH_Font70(u16 x,u16 y,u8 index,u16 color) 
{         
u8 temp,t1,t2=0;
u16 t;

u16 y0=y;     
    for(t=0;t<(70*70/8);t++)//????50*50????×????ó ??72??×??? 
    {    
t2=t/36+1;
if(t<36*t2)temp=tfont70[index*10+t2-1][t-((t2-1)*36)];           //?°24??×???   
    for(t1=0;t1<8;t1++) 

if(temp&0x80)LCD_Fast_DrawPoint(x,y,color);//???????? 
else LCD_Fast_DrawPoint(x,y,BACK_COLOR);   //????°×???¨????±??°???? 
temp<<=1; 
y++; 
if((y-y0)==70) 

y=y0; 
x++; 
break; 

}     
}           
}
回复 支持 反对

使用道具 举报

1

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
357
金钱
357
注册时间
2015-12-11
在线时间
79 小时
发表于 2015-12-17 21:06:17 | 显示全部楼层
有个错误。
if(t<36*t2)temp=tfont70[index*10+t2-1][t-((t2-1)*36)];           //?°24??×??? 
改为

if(t<36*t2)temp=tfont70[index*(70*70/8/36+2)+t2-1][t-((t2-1)*36)];           //?°24??×???
回复 支持 反对

使用道具 举报

1

主题

15

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2015-2-7
在线时间
4 小时
发表于 2019-2-17 22:39:53 | 显示全部楼层
整个程序方便发来么??
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2021-1-16
在线时间
3 小时
发表于 2021-2-9 16:45:52 | 显示全部楼层
shuilian007 发表于 2012-8-1 16:12
回复【20楼】liuminds:
---------------------------------
void&nbsp;Test_Show_CH_Font32(u16&nbsp;x,u16 ...



回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2021-1-16
在线时间
3 小时
发表于 2021-2-9 16:46:41 | 显示全部楼层

你有stm32 32*32汉字显示代码吗

回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2021-1-16
在线时间
3 小时
发表于 2021-2-9 16:49:00 | 显示全部楼层
shuilian007 发表于 2012-8-1 16:12
回复【20楼】liuminds:
---------------------------------
void&nbsp;Test_Show_CH_Font32(u16&nbsp;x,u16 ...

你有stm32 32*32汉字的整个代码显示吗
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2021-1-16
在线时间
3 小时
发表于 2021-2-9 16:49:31 | 显示全部楼层
mgfhappy 发表于 2019-2-17 22:39
整个程序方便发来么??

求整个代码。。师兄,你有吗
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 14:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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