资深版主
- 积分
- 10541
- 金钱
- 10541
- 注册时间
- 2017-2-18
- 在线时间
- 1908 小时
|
程序适合正点原子出厂版本的OLED模块
要求:1.原子板子的SPI FLASH中的字库没文件正常的话,直接在OLED显示汉字
如果不正常,需要准备一张SD卡(FAT32格式)且要求SD卡根目录存放如图所示的“SYSTEM”文件夹
程序中重要的是OLED的汉字显示部分的代码,如下:
- //在指定位置开始显示一个字符串
- //支持自动换行
- //(x,y):起始坐标
- //width,height:区域
- //str :字符串
- //size :字体大小
- void OLED_ShowFontStr(u16 x,u16 y,u16 width,u16 height,u8*str,u8 size)
- {
- u16 x0=x;
- u16 y0=y;
- u8 bHz=0; //字符或者中文
- while(*str!=0)//数据未结束
- {
- if(!bHz)
- {
- if(*str>0x80)bHz=1;//中文
- else //字符
- {
- if(x>(x0+width-size/2))//换行
- {
- y+=size;
- x=x0;
- }
- if(y>(y0+height-size))break;//越界返回
- if(*str==13)//换行符号
- {
- y+=size;
- x=x0;
- str++;
- }
- else OLED_ShowChar(x,y,*str,size,1);//有效部分写入
- str++;
- x+=size/2; //字符,为全字的一半
- }
- }else//中文
- {
- bHz=0;//有汉字库
- if(x>(x0+width-size))//换行
- {
- y+=size;
- x=x0;
- }
- if(y>(y0+height-size))break;//越界返回
- OLED_ShowFont(x,y,str,size,1); //显示这个汉字
- str+=2;
- x+=size;//下一个汉字偏移
- }
- }
- }
复制代码
|
|