zoukankan      html  css  js  c++  java
  • ILI9341支持32*32点阵英文字符(stm32)

    我们拿的是正点原子的历程来修改的,原先例程只支持1206和1608的我们可以在以下爱的地方修改,做到支持2412和1632的。具体如下:
    在GUI.C下找到以下函数,修改即可。我这个是2.4寸的。

    void LCD_ShowChar(u16 x,u16 y,u16 fc, u16 bc, u8 num,u8 size,u8 mode)
    {
        u8 temp;
        u8 pos,t,t1;
        u16 colortemp=POINT_COLOR;
        u8 csize;		//得到字体一个字符对应点阵集所占的字节数
        u16 y0=y;
    
        num=num-' ';//得到偏移后的值
        LCD_SetWindows(x,y,x+size/2-1,y+size-1);//设置单个文字显示窗口
       
    			if(size==24){
    			csize=size*16/8;
    				for(pos=0;pos<csize;pos++){
    				temp=asc2_1224[num][pos];
    					if(pos%2==0)t=8;
    					else t=4;
    					for(t1=0;t1<t;t1++){
    						if(temp&0x01)Lcd_WriteData_16Bit(fc);
    						else Lcd_WriteData_16Bit(bc);
    						temp>>=1;
    					}
    				}
    			}
    			if(size==16||size==12){
    				for(pos=0;pos<size;pos++){
    				if(size==12){temp=asc2_1206[num][pos];}
    				if(size==16){temp=asc2_1608[num][pos];}
    				else return;
    	
    					for(t=0;t<size/2;t++){
    						 POINT_COLOR=fc;
                if(temp&0x01)LCD_DrawPoint(x+t,y+pos);//画一个点
                temp>>=1;
    					}
    				}
    			}
    			if(size==32){
            	csize = (size / 8 + ((size % 8) ? 1 : 0)) * (size / 2);
    				for(pos=0;pos<csize;pos++){
    				temp=asc2_1632[num][pos];
    				
    					for(t1=0;t1<8;t1++){
    						if(temp&0x01)Lcd_WriteData_16Bit(fc);
    						else Lcd_WriteData_16Bit(bc);
    						temp>>=1;
    					}
    				}
    			}
    			
        POINT_COLOR=colortemp;
        LCD_SetWindows(0,0,lcddev.width-1,lcddev.height-1);//恢复窗口为全屏
    }
    

    做完的效果图如下:
    在这里插入图片描述

    一键三连呀!
  • 相关阅读:
    数组字符串
    return语句
    函数
    js流程控制语句
    js数据类型
    精进:如何成为一个很厉害的人---书摘(转)
    生成随机的数字和字母组合
    modelAndView重定向到外网
    mysql. 替换数据库中某个字段
    java中对于时间的处理
  • 原文地址:https://www.cnblogs.com/jee-cai/p/14095326.html
Copyright © 2011-2022 走看看