一开始我下载了读取SD卡的程序,但液晶显示屏幕上没反应,于是我就下载了这个关于更新字库的程序,就有反应了。
本实验将实现如下功能:开机的时候先检测W25Q16中是否已经存在字库,如果存在,则按次序显示汉字(三种字体都显示)。如果没有,则检测SD卡和文件系统,并查找SYSTEM文件夹下的FONT文件夹,在该文件夹内查找UNIGBK.BIN、GBK12.FON、GBK16.FON (这几个文件的由来,我们前面已经介绍了)。在检测到这些文件之后,就开始更新字库,更新完毕才开始显示汉字。通过按按键KEY0,可以强制更新字库。同样我们也是用DS0来指示程序正在运行。
需要拷贝到SD卡根目录文件
1,在系统(或字库)更新的时候,必须用到SYSTEM文件夹,请将该文件夹下的SYSTEM文件夹拷贝到SD卡根目录。
2,测试用文件--该文件夹是用来测试用的,里面包含一些文本/图片/音乐/视频等文件,这个文件不一定要拷贝。
3,默认我们已经将这两个文件夹拷贝到了FLASH磁盘(磁盘名:ALIENTEK,即W25Q128)里面。
注意:
1,本例程支持12*12/16*16 大小的汉字显示。
2,如果想更新字库,必须自备SD卡一个。
单片机源程序如下:
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
#include "key.h"
#include "sram.h"
#include "malloc.h"
#include "usmart.h"
#include "sdio_sdcard.h"
#include "malloc.h"
#include "w25qxx.h"
#include "ff.h"
#include "exfuns.h"
#include "fontupd.h"
#include "text.h"
//汉字显示 实验 -库函数版本
//STM32F4工程模板-库函数版本
int main(void)
{
u32 fontcnt;
u8 i,j;
u8 fontx[2];//gbk码
u8 key,t;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //初始化延时函数
uart_init(115200); //初始化串口波特率为115200
LED_Init(); //初始化LED
LCD_Init(); //LCD初始化
KEY_Init(); //按键初始化
W25QXX_Init(); //初始化W25Q128
usmart_dev.init(168); //初始化USMART
my_mem_init(SRAMIN); //初始化内部内存池
my_mem_init(SRAMCCM); //初始化CCM内存池
exfuns_init(); //为fatfs相关变量申请内存
f_mount(fs[0],"0:",1); //挂载SD卡
f_mount(fs[1],"1:",1); //挂载FLASH.
// W25QXX_Erase_Chip();//擦除
while(font_init()) //检查字库
{
UPD:
LCD_Clear(WHITE); //清屏
POINT_COLOR=RED; //设置字体为红色
LCD_ShowString(30,50,200,16,16,"Mcudev STM32F4");
while(SD_Init()) //检测SD卡
{
LCD_ShowString(30,70,200,16,16,"SD Card Failed!");
delay_ms(200);
LCD_Fill(30,70,200+30,70+16,WHITE);
delay_ms(200);
}
LCD_ShowString(30,70,200,16,16,"SD Card OK");
LCD_ShowString(30,90,200,16,16,"Font Updating...");
key=update_font(20,110,16,"0:");//更新字库
while(key)//更新失败
{
LCD_ShowString(30,110,200,16,16,"Font Update Failed!");
delay_ms(200);
LCD_Fill(20,110,200+20,110+16,WHITE);
delay_ms(200);
}
LCD_ShowString(30,110,200,16,16,"Font Update Success! ");
delay_ms(1500);
LCD_Clear(WHITE);//清屏
}
POINT_COLOR=RED;
Show_Str(30,50,200,16,"Mcudev_STM32F407开发板",16,0);
Show_Str(30,70,200,16,"GBK字库测试程序",16,0);
//Show_Str(30,90,200,16,"嵌入式开发网mcudev",16,0);
Show_Str(30,110,200,16,"2018年4月22日",16,0);
Show_Str(30,130,200,16,"按KEY0,更新字库",16,0);
POINT_COLOR=BLUE;
Show_Str(30,150,200,16,"内码高字节:",16,0);
Show_Str(30,170,200,16,"内码低字节:",16,0);
Show_Str(30,190,200,16,"汉字计数器:",16,0);
// Show_Str(30,220,200,24,"对应汉字为:",24,0); //因为FLASH W25Q16无法装下所有三种字库,暂时不提供对24点阵字库的显示
Show_Str(30,244,200,16,"对应汉字(16*16)为:",16,0);
Show_Str(30,260,200,12,"对应汉字(12*12)为:",12,0);
while(1)
{
fontcnt=0;
for(i=0x81;i<0xff;i++)
{
fontx[0]=i;
LCD_ShowNum(118,150,i,3,16); //显示内码高字节
for(j=0x40;j<0xfe;j++)
{
if(j==0x7f)continue;
上一篇:STM32 PWM实现精确输出脉冲数控制电机
下一篇:Stm32f103c8t6工程模板(内部晶振)源码
推荐阅读
史海拾趣
机顶盒,全称为数字视频变换盒,是连接电视机与外部信号源的关键设备,具有高度的专业性和广泛的应用性。从广义上讲,凡是能与电视机连接并处理音视频信号的网络终端设备均可视为机顶盒。它不仅能够接收来自有线电缆、卫星天线、宽带网络及地面广播的数字电视信号,还能通过内置的解码器将这些信号转换为电视机可识别的格式,从而呈现出高清乃至4K的超高清画质,大大提升了观看体验。
机顶盒不仅限于基本的电视信号接收功能,还集成了多种增值服务。例如,它提供电子节目指南,让用户轻松查找和预约节目;支持因特网网页浏览,实现网络购物、在线视频观看、游戏娱乐等多元化互动体验。随着智能化技术的发展,现代机顶盒还融入了语音助手、智能推荐等功能,进一步提升了用户的操作便捷性和内容个性化程度。
在技术层面,机顶盒的发展日新月异,不断向高清化、智能化方向迈进。5G技术的应用更是为机顶盒带来了更快的传输速度和更低的延迟,为用户提供了更为流畅的观影体验。此外,虚拟现实和增强现实技术的融入,也为机顶盒的未来发展打开了新的想象空间,将为用户带来更为沉浸式和互动式的观影享受。
综上所述,机顶盒作为现代家庭娱乐的重要组成部分,不仅极大地丰富了人们的电视观看体验,还通过不断的技术创新和服务升级,满足着用户日益多样化的需求。
进入21世纪后,ddm hopt + schuler公司紧跟数字化浪潮,积极推动数字化转型和智能制造。公司引入先进的物联网、大数据和人工智能技术,对生产线进行智能化改造和升级。通过实时数据监控和分析,公司能够更准确地预测市场需求、优化生产计划、提高生产效率。同时,智能制造也为企业带来了更高的灵活性和更低的成本。
为了进一步扩大市场份额,华宇创开始积极拓展国内外市场。公司参加了多场国际电子展和博览会,与全球各地的客户建立了广泛的联系。同时,华宇创还与国际知名电子企业建立了战略合作关系,共同研发新技术、新产品。这些国际合作不仅为华宇创带来了更多的商业机会,也提升了公司在国际市场的地位和影响力。
随着公司规模的扩大和产品线的丰富,Delock公司开始积极拓展国际市场。公司先是在欧美等发达国家设立了办事处和分销中心,随后又逐步进入亚洲、非洲等新兴市场。为了更好地满足全球用户的需求,Delock公司还针对不同地区的市场特点进行产品定制和营销策略的调整。这一系列的全球化战略让Delock公司的产品在全球范围内获得了广泛的认可和应用。
Fischer Elektronik深知每个客户的需求都是独特的,因此公司非常注重提供客户定制化的解决方案。公司拥有一支专业的研发团队和先进的生产设备,能够根据客户的具体需求,设计并生产出符合其要求的产品。这种高度定制化的服务模式,赢得了众多客户的信赖和好评,也为公司赢得了更多的市场份额。
EPSON公司,原名精工爱普生,成立于1942年,最初以制造手表起家。然而,随着技术的不断进步和市场需求的变化,EPSON逐渐将业务扩展到电子领域。在创始人及其团队的带领下,EPSON凭借其卓越的技术创新能力,成功研发出了一系列具有划时代意义的电子产品,如世界上第一台微型打印机和喷墨打印机,奠定了其在电子行业的领先地位。
1、电子技术资料尽量看西方英文原版的 理由:电子技术发源于西方,那边的人对许多电路问题有很深的认识,研究的很细,条理很清晰,对产品开发的指导性强。尽管国内也有人在研究,但有真正指导生产意义的刊物太少,市面上 ...… 查看全部问答∨ |
|
请问为啥pc不能引导ce。image section doesn't fit in allocated block 下载了VM虚拟机。和研博loadcepc 【2.2】 和nk.bin 【2.2】 把虚拟硬盘格成FAT格式 把研博的DOS引导部分解压到c:把loadcepc和nk.bin复制到c: 硬盘开机 看到研博的开机画面了 大概到百分90的时候 出现错误 Error image ...… 查看全部问答∨ |
最近通过导师的介绍认识了一个公司的负责人,有2个基于Vxworks的项目,说可以给我做,省得自己再招人。我也是刚刚着手Vxworks的开发,到上海时间不长,想找几个志同道合的内行组个小团队,一起发展发展,有兴趣且有实际经验的可以联系我,qq:41878 ...… 查看全部问答∨ |
linux高手,帮我解决在linux上安装ADS,我用的是red hat .25 的,在那里有下支持linux ads的!!谢谢了!没用的话,谁能告诉我,在linux下有什么样的ARM编译器!!!… 查看全部问答∨ |
|
在厂房里有一排柜子,每个柜子上有一个led灯,想通过一台电脑来控制其中的几个led灯亮! 问应该采用什么样的解决方案! 我以前很少搞这种跟单片机打交道的项目,所以特来请教,希望高手指点! (是不是每个led灯都配一个51系列的单片机,都带rs ...… 查看全部问答∨ |
|
这是初始化的一段代码,我初始化后,再往芯片发送随机数就不成功,我怀疑是初始化后熔断了熔丝造成的, 熔丝代码: ucData[0]= (uchar)CM_FAB; ucReturn = cm_BurnFuse(ucData[0]); i ...… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 有奖直播:英飞凌工业半导体在电机驱动行业中的应用 2020年4月21日 上午10:00-11:30 准时开启!
- 有奖活动 | 来PI PowiGaN技术学习中心,解密高可靠性和耐用性氮化镓(GaN)技术
- 福禄克有奖直播|新型8.5位数字多用表技术发展及应用
- 有奖直播:英飞凌工业半导体在电机驱动行业中的应用 2020年4月21日 上午10:00-11:30 准时开启!
- 体积小、功耗低、安全性高,专用加密芯片ATSHA204 精彩专题,答题有好礼!
- 中秋芯币兑换月饼啦!
- 骏龙科技&ADI有奖直播:适用于视频、转换器、通信的千兆数字隔离器
- 泰克多媒体总线系列专题之三 《USB3.1接口测试》下载有礼
- 【答题有礼】了解PI推出的全新LinkSwitch-XT2离线反激式开关电源IC产品系列