STM32C8T6驱动四针0.96寸OLED中汉字显示的问题

   日期:2021-02-04     浏览:138    评论:0    
核心提示:最近在调毕业设计的板子,在调试OLED的过程中发现了一个汉字显示上的BUG;初始汉字显示函数:void OLED_ShowCHinese(u8 x,u8 y,u8 no){ u8 t,adder=0; OLED_Set_Pos(x,y); for(t=0;t<16;t++) { OLED_WR_Byte(Hzk[2*no][t],OLED_DATA); adder+=1; } OLED_Set_Pos(x,y+1);

最近在调毕业设计的板子,在调试OLED的过程中发现了一个汉字显示上的BUG;

初始汉字显示函数:

void OLED_ShowCHinese(u8 x,u8 y,u8 no)
{       			    
	u8 t,adder=0;
	OLED_Set_Pos(x,y);
	for(t=0;t<16;t++)
		{ 
				OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
				adder+=1;
        }	
		OLED_Set_Pos(x,y+1);	
    for(t=0;t<16;t++)
			{ 	
				OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);
				adder+=1;
		    }
		}	

取字模的数组表


{ 0x00,0x00,0xA0,0x60,0x58,0xF6,0x50,0xA8,0x28,0x70,0x90,0x90,0x50,0x30,0x10,0x00},
{ 0x00,0x00,0x04,0x02,0x01,0x00,0x7E,0x4A,0x2A,0x2A,0xFE,0x02,0x00,0x00,0x00,0x00},

{ 0x00,0x00,0x60,0x50,0x4C,0xC4,0x30,0x00,0x7E,0x90,0x90,0x88,0x40,0x00,0x00,0x00},
{ 0x00,0x00,0x34,0x0B,0x0B,0x66,0x39,0x00,0x1F,0x24,0x44,0x42,0x20,0x30,0x00,0x00},

{ 0x00,0x80,0x80,0x80,0x80,0x90,0xF8,0x88,0x88,0xF8,0x88,0x88,0x40,0x40,0x00,0x00},
{ 0x00,0x00,0x00,0x20,0x18,0x07,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00},

{ 0x00,0x00,0x00,0x00,0x00,0x48,0x58,0xC0,0x20,0x38,0x26,0x00,0x00,0x00,0x00,0x00},
{ 0x00,0x00,0x00,0x42,0x22,0x12,0x0D,0x03,0x05,0x09,0x31,0x61,0x61,0x41,0x40,0x00},


使用此函数时,当调用Hzk[][32]数组中所存放的第37个汉字时,会出现如下显示:

可以看出,汉字被砍成了两半,并且上下颠倒,而在数组中所存放的前32个汉字能够正常显示,基于这种情况,只能够分段处理数组中的两行数据。

修改后的代码:

void OLED_ShowCHinese(u8 x,u8 y,u8 no)
{       			    
	u8 t,adder=0;
	OLED_Set_Pos(x,y);
		if(no < 32)
		{ 
    for(t=0;t<16;t++)
		{ 
				OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
				adder+=1;
     }	
		OLED_Set_Pos(x,y+1);	
    for(t=0;t<16;t++)
			{ 	
				OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);
				adder+=1;
      }
		}	
			if(no >= 32)
			{ 
				 for(t=0;t<16;t++)
		{ 
				OLED_WR_Byte(Hzk[2*no-1][t],OLED_DATA);  //处理所存放的第33个汉字时,首先写入第二行数据
				adder+=1;
     }	
		OLED_Set_Pos(x,y+1);	
    for(t=0;t<16;t++)
			{ 	
				OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
				adder+=1;
      }
			}
}

修改后,就能够正确显示汉字了。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服