战舰stm32 正点原子 OLED的中文显示

2023-10-08 08:10

本文主要是介绍战舰stm32 正点原子 OLED的中文显示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述:
学习完正点原子的OLED显示实验,很多人会发现只能使屏幕显示英文,即使显示中文也只能是2n*n像素,或是乱码。本文将向您介绍如何解决这个问题。
开发工具:
正点原子战舰开发板V3
Keil 5
PCtoLCD2002完美版

解决方法:

1、打开“PCtoLCD2002完美版”软件,打开“选项“”面板,在“字模选项”中选择“阴码”+“逐列式”+“顺向”+“C51格式”。

2、选择合适的字体和大小(这里以24*24的黑体为例),输入文字(这里以“傲歌”为例),单击“生成字模”,并复制两行字模代码。

3、打开oledfont.h的头文件,新建一个中文字库函数chinese_2424。

const unsigned char chinese_2424[3][72]={
{0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x70,0x00,0x01,0xC0,0x00,0x0F,0xFF,0xFE,0x3C,0x00,0x00,0x30,0x00,0x0C,0x04,0x98,0x38,0x04,0x9F,0xF0,0x04,0x9F,0x88,0x3F,0xF9,0x08,0x04,0x99,0x18,0x04,0x99,0xF8,0x04,0x99,0x82,0x04,0x10,0x06,0x00,0xF8,0x0E,0x07,0xFE,0x1C,0x3F,0x07,0xF8,0x31,0x00,0xF0,0x01,0x07,0xF8,0x01,0xFE,0x0C,0x01,0x00,0x06,0x01,0x00,0x04,0x00,0x00,0x00},/*"?",0*/
{0x00,0x00,0x00,0x10,0x08,0x00,0x13,0xC9,0xFC,0x13,0xC9,0xFC,0x12,0x49,0x30,0x12,0x49,0x30,0x13,0xC9,0xF0,0x13,0xC9,0xF2,0x10,0x08,0x06,0x10,0x08,0x06,0x1F,0xEF,0xFE,0x10,0x08,0x02,0x10,0x08,0x06,0x00,0xC8,0x0E,0x03,0xC0,0x1C,0x1F,0x00,0x70,0x3B,0x3F,0xE0,0x23,0x3F,0x80,0x03,0x00,0xE0,0x03,0x00,0x38,0x03,0xC0,0x1C,0x03,0xC0,0x0E,0x00,0x00,0x04,0x00,0x00,0x00},/*"?",1*/
};

4、打开oled,c文件,修改字符串显示函数 OLED_ShowChar
void OLED_ShowChar(u8 x, u8 y, u8 chr, u8 size, u8 mode)
{
u8 temp, t, t1;
u8 y0 = y;
u8 csize = ( size/8 + ((size%8)?1:0) ) * size;		
chr=chr - '0';	 
for(t=0;t

5、修改字符串传递函数OLED_ShowString
void OLED_ShowString(u8 x, u8 y, const u8 *p, u8 size)
{	
while((*p <= '~') && (*p >= ' '))
{  
if(x > (128 - size))
{
x = 0;
y += size;
}
if(y > (64 - size))
{
y = x = 0;
OLED_Clear();
}
OLED_ShowChar(x, y, *p, size, 1);	 
x += size;
p++;
}  
}	 
6、打开main.c主文件修改主函数如下:
int main(void)
{
delay_init();	    	   
OLED_Init();			     
OLED_ShowString(30, 30, "01", 24);  
OLED_Refresh_Gram();		 
}





4、

这篇关于战舰stm32 正点原子 OLED的中文显示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/163920

相关文章

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

CSS模拟 html 的 title 属性(鼠标悬浮显示提示文字效果)

《CSS模拟html的title属性(鼠标悬浮显示提示文字效果)》:本文主要介绍了如何使用CSS模拟HTML的title属性,通过鼠标悬浮显示提示文字效果,通过设置`.tipBox`和`.tipBox.tipContent`的样式,实现了提示内容的隐藏和显示,详细内容请阅读本文,希望能对你有所帮助... 效

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Java下载文件中文文件名乱码的解决方案(文件名包含很多%)

《Java下载文件中文文件名乱码的解决方案(文件名包含很多%)》Java下载文件时,文件名中文乱码问题通常是由于编码不正确导致的,使用`URLEncoder.encode(filepath,UTF-8... 目录Java下载文件中文文件名乱码问题一般情况下,大家都是这样为了解决这个问题最终解决总结Java下

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

电脑显示hdmi无信号怎么办? 电脑显示器无信号的终极解决指南

《电脑显示hdmi无信号怎么办?电脑显示器无信号的终极解决指南》HDMI无信号的问题却让人头疼不已,遇到这种情况该怎么办?针对这种情况,我们可以采取一系列步骤来逐一排查并解决问题,以下是详细的方法... 无论你是试图为笔记本电脑设置多个显示器还是使用外部显示器,都可能会弹出“无HDMI信号”错误。此消息可能

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作