战舰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

相关文章

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

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

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

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

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

vscode中文乱码问题,注释,终端,调试乱码一劳永逸版

忘记咋回事突然出现了乱码问题,很多方法都试了,注释乱码解决了,终端又乱码,调试窗口也乱码,最后经过本人不懈努力,终于全部解决了,现在分享给大家我的方法。 乱码的原因是各个地方用的编码格式不统一,所以把他们设成统一的utf8. 1.电脑的编码格式 开始-设置-时间和语言-语言和区域 管理语言设置-更改系统区域设置-勾选Bata版:使用utf8-确定-然后按指示重启 2.vscode

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介  1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 (OTA) 3在线编程(ICP把整个程序都更新掉) 1 系统的Bootloader写死了,只能用串口下载到指定的位置,启动方式也不方便需要配置BOOT引脚触发启动  4 IAP(自己写的Bootloader,实现程序升级) 1 比如蓝牙转串口,

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

寻迹模块TCRT5000的应用原理和功能实现(基于STM32)

目录 概述 1 认识TCRT5000 1.1 模块介绍 1.2 电气特性 2 系统应用 2.1 系统架构 2.2 STM32Cube创建工程 3 功能实现 3.1 代码实现 3.2 源代码文件 4 功能测试 4.1 检测黑线状态 4.2 未检测黑线状态 概述 本文主要介绍TCRT5000模块的使用原理,包括该模块的硬件实现方式,电路实现原理,还使用STM32类