OpenEdv-开源电子网

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

[OLED模块] 战舰V3&精英_OLED汉字显示(从SPI FLASH读取汉字字库)

[复制链接]

109

主题

5562

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10541
金钱
10541
注册时间
2017-2-18
在线时间
1908 小时
发表于 2019-8-21 21:56:50 | 显示全部楼层 |阅读模式
程序适合正点原子出厂版本的OLED模块
要求:1.原子板子的SPI FLASH中的字库没文件正常的话,直接在OLED显示汉字
如果不正常,需要准备一张SD卡(FAT32格式)且要求SD卡根目录存放如图所示的“SYSTEM”文件夹
1.JPG
程序中重要的是OLED的汉字显示部分的代码,如下:
  1. //在指定位置开始显示一个字符串            
  2. //支持自动换行
  3. //(x,y):起始坐标
  4. //width,height:区域
  5. //str  :字符串
  6. //size :字体大小                             
  7. void OLED_ShowFontStr(u16 x,u16 y,u16 width,u16 height,u8*str,u8 size)
  8. {                                       
  9.         u16 x0=x;
  10.         u16 y0=y;                                                                    
  11.     u8 bHz=0;     //字符或者中文                                                                                              
  12.     while(*str!=0)//数据未结束
  13.     {
  14.         if(!bHz)
  15.         {
  16.                 if(*str>0x80)bHz=1;//中文
  17.                 else              //字符
  18.                 {      
  19.                 if(x>(x0+width-size/2))//换行
  20.                                 {                                  
  21.                                         y+=size;
  22.                                         x=x0;          
  23.                                 }                                                            
  24.                         if(y>(y0+height-size))break;//越界返回      
  25.                         if(*str==13)//换行符号
  26.                         {         
  27.                             y+=size;
  28.                                         x=x0;
  29.                             str++;
  30.                         }  
  31.                         else OLED_ShowChar(x,y,*str,size,1);//有效部分写入
  32.                                 str++;
  33.                         x+=size/2; //字符,为全字的一半
  34.                 }
  35.         }else//中文
  36.         {     
  37.             bHz=0;//有汉字库   
  38.             if(x>(x0+width-size))//换行
  39.                         {            
  40.                                 y+=size;
  41.                                 x=x0;                  
  42.                         }
  43.                 if(y>(y0+height-size))break;//越界返回                                                       
  44.                 OLED_ShowFont(x,y,str,size,1); //显示这个汉字
  45.                 str+=2;
  46.                 x+=size;//下一个汉字偏移            
  47.         }                                                 
  48.     }   
  49. }
复制代码


战舰V3&精英_OLED汉字显示(从SPI FLASH读取汉字字库).rar

6.45 MB, 下载次数: 411

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 23:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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