历史上的今天
返回首页

历史上的今天

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

正在发生

2018年04月13日 | STM32通过串口向外部FLASH(W25X16)写入字库

2018-04-13 来源:eefocus

系统中使用过多的汉字会出现芯片容量不够用的问题,可将数据存储在外部FLASH中,在需要使用时进行调用即可。本文是通过STM32串口1实现对W25X16的汉字字库存储。软件层面,配置串口1和SPI1即可,程序初始化后,在对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开始,一个字节一个字节进行写入。

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

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

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

计算了下,字库占用了3个块多点,因此彻底避开此区域,从第五块开始擦除,然后将准备好的图片点阵,通过串口写入W25X16,。注意:获取图片的点阵数据后,文本中只连续放图片十六进制的数据,其他的字符"0x"、逗号、回车都不能存在:

 

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

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);

            }

}


推荐阅读

史海拾趣

ETRI公司的发展小趣事

随着人工智能的兴起,ETRI也将目光转向了这一领域。他们与首尔市政府合作,在首尔市The Seocho District区内安装了3000台AI摄像头,这些摄像头通过深度学习技术,能够预测犯罪发生的概率,并在必要时提醒警署采取行动。此外,他们还计划分析大量的法庭判决文件和犯罪录像,以优化AI软件的预测能力。

Galaxy Microelectronics公司的发展小趣事

深圳市飞翼科技有限公司自2006年成立以来,一直致力于模拟与数字MCU混合芯片领域的研究、设计和开发应用。公司主攻电容式触摸感应按键芯片设计,凭借多项独有的专利技术,成功突破了行业内的技术难点。经过多年的努力,飞翼科技已成为该应用领域中技术最全面、市场份额最大的公司之一。其电容式触摸感应芯片广泛应用于各类电子产品中,为用户带来了更加便捷、智能的交互体验。

Dailywell Electronics Co Ltd公司的发展小趣事

随着业务的不断扩展和市场需求的增加,德利威电子在1998年实现了全系列防水开关的生产,并取得了RS33A开关专利。同年,公司还扩大了经营规模,搬入了自购的厂办大楼,并增加了资本额至一千五百万元。这些举措不仅提升了公司的生产能力和产品品质,也为公司未来的发展奠定了坚实的基础。

台湾致强(FORT)公司的发展小趣事

面对电子行业的快速发展和市场需求的不断变化,致强科技始终保持敏锐的市场洞察力。公司积极寻求与上下游企业的跨界合作,共同推动产业升级和技术创新。通过与知名电子厂商、科研机构及高校等建立紧密的合作关系,致强科技不断引入新技术、新工艺和新材料,为产品的升级换代提供了有力支持。同时,公司还积极拓展新业务领域,如车联网、物联网等新兴领域,为公司的未来发展开辟了更广阔的空间。

固驰(GUERTE)公司的发展小趣事

在快速发展的同时,固驰电子始终不忘履行社会责任。公司积极参与公益事业,关注环境保护和可持续发展。通过采用环保材料和节能技术,固驰电子努力降低生产过程中的能耗和排放,为构建绿色、低碳的生态环境贡献力量。此外,公司还注重员工培训和职业发展,为员工提供良好的工作环境和晋升机会,实现了企业与员工的共同成长。

FILTRONETICS Inc公司的发展小趣事

进入21世纪后,FILTRONETICS意识到全球化市场的重要性,开始积极开拓国际市场。公司加强了与国际客户的沟通与合作,参加了多个国际电子展会,展示了公司的技术和产品。同时,公司还在海外设立了分支机构,以便更好地服务当地客户。通过不懈的努力,FILTRONETICS成功打入多个国际市场,并赢得了众多国际客户的信赖和支持。

问答坊 | AI 解惑

想快速学会ARM及嵌入式linux的进,精品资料

想快速学会ARM及嵌入式linux的进,精品资料 ARM及嵌入式linux培训视频少有的精品学习资料!出售此视频 (这是一个培训班的授课内容,参加这个培训班费用要4千多元!) 看这个视频差不多相当于上一次班,并且看不懂可以重复学习.对初学者 ...…

查看全部问答>

【藏书阁】模拟电子技术基础(第四版)课件 康华光

第01章 绪论 19页.ppt 第02章 半导体二极管及基本电路 37页.ppt 第03章 半导体三极管及放大电路基础 82页.ppt 第04章 场效应管放大电路 34页.ppt 第05章 功率放大器 18页.ppt 第06章 集成电路运算放大器 36页.ppt 第08章 信号的运算与处理电 ...…

查看全部问答>

lpc1114 ADC 转换实例测试!!图片

下午弄啦下ADC 转换的部分 , 现将结果发下图片!!!!  共同交流!!!!,共同学习!!!   …

查看全部问答>

一个CAB安装包能不能实现安装完后接着自动运行一个EXE文件啊?

请问一个CAB安装包能不能实现安装完后接着自动运行一个EXE文件啊?EXE文件是外部调用的,比如是和CAB文件同一目录里…

查看全部问答>

几个ATMega的入门问题

本人初学单片机,很多东西不懂,望大侠们帮我解答以下几个问题,多谢. 1.请问什么软件能把用ICCAVR写好的程序烧录进EEPROM ? 2.板子上有一个6针脚的长方形接口,估计就是传说中的USART(串口)吧,烧录前是不是用串口线连接电脑的串口和板子上的这个 US ...…

查看全部问答>

数字游标卡尺什么原理?

好像里面有个专门的芯片?那这个芯片是怎么工作怎么知道长度的呢?…

查看全部问答>

GPIO接口模拟成SPI驱动开发

SPI驱动是将GPIO接口模拟成SPI?驱动应该怎么写,是不是和写GPIO驱动一样?…

查看全部问答>

问几个windows文件过滤驱动得问题

1 文件过滤驱动捕获文件操作之后,如何能够从驱动立刻通知应用程序知道呢? 比如,杀毒软件得实施监控,能够立刻让界面之后某个程序被用户打开了 我想让我得驱动捕获到读和写得时候立刻通知应用程序知道 2 文件过滤驱动,捕获到写请求得时候 应用 ...…

查看全部问答>

CE6 RIL 不加载的问题

代朋友咨询这个问题。 他把RIL的mdd代码从public移到自己bsp的driver下面,然后把PDD也移植过来,然后编译生成了rilgsm.dll,然后修改了platform.bib和platform.reg文件,然后把此两个文件拷贝到OSDesigns\\......\\release 目录下,然后makeimg, ...…

查看全部问答>

驱动内训课件2010

懒得废话   想下就下 ARM_Linux     是系统开发 和 驱动开发的课件 还包括QT  和 SQLite  貌似一次发不上去啊  扫楼好了   等下啊   4个pdf 应该打包的 qq邮箱发送的的  倒 ...…

查看全部问答>