历史上的今天
返回首页

历史上的今天

今天是:2025年02月13日(星期四)

正在发生

2020年02月13日 | STM32如何实现W25X16的汉字字库存储

2020-02-13 来源:elecfans

系统中使用过多的汉字会出现芯片容量不够用的问题,可将数据存储在外部FLASH中,在需要使用时进行调用即可。本文是通过STM32串口1实现对W25X16的汉字字库存储。软件层面,配置串口1和SPI1即可,程序初始化后,在对W25X16进行写之前,必须先擦除,可以一个字节、一页、一扇区、一块以及整片擦除。写字库前,我们用整片擦除方式,如下:

STM32如何实现W25X16的汉字字库存储

整个程序中,关键在于串口接收中断函数的编写,如下:

u32 WriteAddress=0;

void USART1_IRQHandler(void)

{

u8 Res;

if(USART_GeTITStatus(USART1,USART_IT_RXNE)!=RESET)

{

USART_ClearITPendingBit(USART1,USART_IT_RXNE);

Res=USART_ReceiveData(USART1);                            

SPI_Flash_Write_NoCheck(&Res,WriteAddress,1);

WriteAddress++;

}

}


也就是从地址0开始,一个字节一个字节进行写入。


代码为最简单的通信代码,不过多说,然后打开串口助手,进行配置,勾选启用文件数据源,选择下载或者自己做好的字库文件;勾选按十六进制发送,在芯片完全擦除后再进行发送:

STM32如何实现W25X16的汉字字库存储

经过几十秒的等待,字库会发送完成,通过看发送的字节数与字库的字节数对比,即可知道是否发送完毕。(上图中发送字节数不是字库字节数)前面的文章有写过汉字点阵获取的方法,此处不再赘述。如此,即可通过SPI访问外部FLASH来调用汉字,并将其显示在显示屏上。同样对于asiic码可以将其写入某个块中,然后通过地址的偏移来计算对应的字符。


对于图片的存储也是相同原理,在之前实现汉字显示的基础上,笔者测试了图片的显示,而且获得正确的显示。笔者使用的显示屏为TFT1.44的,为128*128,占用32768字节,两张图片正好占用65536字节,也就是64Kb,而W25X16一个块是64Kb,进行块擦除后,每个块可以载入两张图片,非常完美。基本程序相同,只是此时因为字库的写入,不使用片擦除指令,而使用块擦除实现对未使用块区的擦除:

STM32如何实现W25X16的汉字字库存储

计算了下,字库占用了3个块多点,因此彻底避开此区+在:

可以打开看下字库文件,然后对获取的图片文件进行编辑即可。下面贴出自己编写的图片显示的代码:

void ShowImage_W25X16(u32 WriteAddr)

{

int i;

u32 j;

unsigned char picH,picL;

u8 datatemp[2];

Lcd_Clear(WHITE);

Lcd_SetRegion(0,0,127,127);   

  for(j=0;j《1024;j++)

  for(i=0;i《16;i++)

  {

  SPI_Flash_Read(datatemp,WriteAddr,2);

  picL=datatemp[0];

  picH=datatemp[1];

  WriteAddr=WriteAddr+2;

  LCD_WriteData_16Bit(picH《《8|picL);

  }

  }       

推荐阅读

史海拾趣

Design Gateway公司的发展小趣事

随着Gateway业务的不断发展,公司开始寻求更多的市场曝光。1987年,Gateway在《Computer Shopper》杂志上投放了一版独特的广告,吸引了众多消费者的目光。1991年,公司推出了彰显其牧场起家背景的别具一格的奶牛花斑盒状商标,这一创新举措获得了全国消费者的认可,进一步提升了Gateway的品牌知名度和市场地位。

(请注意,由于篇幅限制,以上两个故事为简化版。在实际写作中,可以进一步扩展每个故事,包括更详细的背景信息、人物对话、市场反应等。)

由于篇幅所限,这里只提供了两个故事概要。如果需要更多关于Gateway或其他电子公司的发展故事,可以进一步研究和撰写。

Hammond公司的发展小趣事

1985年,泰德·维特(Ted Waitt)和Mike Hammond两位年轻人决定辍学创业。他们利用维特祖母的15,000美元存款作为担保,从银行获得了10,000美元贷款,租用了一台计算机,并准备了一份三页的经营计划。在维特父亲位于爱荷华州苏城的牧场里,他们创办了TIPC Network公司(Gateway的前身)。公司起步时,主要向得克萨斯电脑器械公司销售零配件,并开展计算机邮购业务。得益于直销商业模式,Gateway在短短四个月内就实现了10万美元的销售额。

Circuit Technology Inc公司的发展小趣事

随着市场竞争的加剧,CTI意识到品质管理对于企业发展的重要性。于是,公司开始引进先进的品质管理体系,从原材料采购到生产流程控制,再到产品检测,每一个环节都严格把关。同时,CTI还加大了品牌宣传力度,通过参加行业展会、举办技术研讨会等方式,提升品牌知名度和影响力。这些举措不仅提高了产品的品质稳定性,也赢得了客户的信赖和支持。

HTC Korea(TAEJIN Technology )公司的发展小趣事

HTC Korea(前身为TAEJIN Technology Co., Ltd.)成立于2000年,最初以Linear IC产品的研发及生产为主,逐步在通信、消费类及PC等应用领域稳步发展。然而,公司的真正突破发生在2006年,这一年HTC决定从OEM代工厂转型为自主品牌制造商。这一转型并非易事,面临着合作伙伴转变为竞争对手的风险,导致股价一度暴跌。但HTC坚持下来,推出了HTC Touch和HTC Diamond等经典机型,成功吸引了市场的关注,股价逐渐回升,最终奠定了其在手机市场的重要地位。

ACT [Advanced Crystal Technology]公司的发展小趣事

近年来,HTC在VR领域取得了显著的成就。2023年,在美国国际消费性电子展(CES)中,HTC推出了最先进的虚拟实境头戴式显示器VIVE XR Elite,凭借其创新、高规格的设计和巧妙的人体工学设计,赢得了众多国际媒体的赞誉和奖项。此外,HTC还开发了多款VR内容套件和追踪器,为用户提供了更加沉浸式的虚拟体验。这些努力不仅推动了VR产业的发展,也为HTC带来了新的增长点。

EIC [EIC discrete Semiconductors]公司的发展小趣事

在竞争激烈的电子行业中,EIC公司深知供应链管理和成本控制的重要性。公司建立了完善的供应链管理体系,与供应商建立了长期稳定的合作关系,确保了原材料的稳定供应和质量的可靠性。同时,EIC还通过优化生产流程、提高生产效率等措施,不断降低生产成本,提升产品的竞争力。

问答坊 | AI 解惑

ARM与嵌入式linux入门的建议

由于很多人总问这个问题,所以这里做一个总结文档供大家参考。这里必须先说明,以下的步骤都是针对Linux系统的,并不面向WinCE。也许你会注意到,现在做嵌入式的人中,做linux研究的人远比做WinCE的人多,很多产家提供的资料也是以linux为主。我一 ...…

查看全部问答>

模拟电路有多难。。。。。。

模拟电路到底有多难? 如何去设计一个模拟电路? 面对一堆功能,模拟电路的解决方案从哪下手? 一片茫然 《模拟电路基础》翻了一遍又一遍 总是看到了是懂,不看又什么都不懂 学不能用 让人很痛苦 有人指点指点么? 涕零!…

查看全部问答>

74Hc系列供电请教

我要给56个74hc系列的芯片供8伏左右的电压 该怎么供电啊 我用了个12v的电源用7809转化为9v的供电不行啊 电压不够 急啊…

查看全部问答>

wince6.0上UVC问题,欢迎探讨

公司现在正开始一个新项目,思路是想把wince6.0上播放的avi通过UVC的方式直接在电脑上当usb摄像头的方式显示出来,现在还很茫然,请各位大虾给点意见。…

查看全部问答>

wce下能否使用MFC类库,怎样才能够使用?

wce下能否使用MFC类库,怎样才能够使用?…

查看全部问答>

关于bootloader在flash中存储地址的问题!

最近在看u-boot,有个问题一直不是很确定: 在cpu目录下面arm920t下的是start.S里面开始,下面的语句: .globl _start _start:        b       reset         ldr      ...…

查看全部问答>

platform builder 6.0可以开发wince5.0吗

电脑上没有安装PB5.0,想用6.0来开发wince5.0不知道可以没。…

查看全部问答>

可控硅移相降压到50伏特给电炉丝供电可以吗

有台设备 需要加热   电炉丝需要 电压50伏 功率达4K瓦 我想用用电力控制器(可控硅模块)把电压220降到50伏给电炉丝供电能到行不 电源到可控硅这段电线上将承受多大电流?…

查看全部问答>

什么事plc输入输出延迟效应,就是有输入信号,没反映过了,过了千分之几秒,反映过了

什么事plc输入输出延迟效应,就是有输入信号,没反映过了,过了千分之几秒,反映过了…

查看全部问答>

Windows Mobile 5.0系统驱动开发环境搭建

(1)安装Windows Mobile 5.0系统及Platform Builder for Windows Mobile 5.0 WM50_OAK_RTM \\Microsoft Platform Builder for Windows Mobile 5.0.msi (with it can download & debug binary) (2)安装升级包,升级到WM 6.0 AKU604.msi(Wind ...…

查看全部问答>