正点原子学习小组
直播中

jinglixixi

8年用户 1552经验值
擅长:嵌入式技术 光电显示 接口/总线/驱动 控制/MCU
私信 关注
[经验]

【正点原子STM32探索者V3开发板体验】TF卡读写与数码相框

STM32F407开发板配置了TF卡接口及相应的文件系统,其接口电路如图1所示。

由于采用了一款SPI接口的2.2寸TFT显示屏,故要实现数码相框功能需要在其TF卡的读写功能上重新进行整体的修改和调整。
image.png

图1 TF卡接口

在整体修改和调整过程中,主要是依照下面3个步骤来完成:

  1. 替换原显示驱动

关于TFT显示屏的驱动在前面已经做过介绍,这里就不再重述。但为了后续的处理需要将其配置成独立的功能模块以供调用,否则很在其它地方调用它。
image.png

此外,就是将原来的显示模块及相关调用屏蔽。
image.png
2. 恢复界面显示

由于新的显示驱动函数与原驱动函数存在一定的差别,因此在恢复原显示界面时,需以新的显示函数来替代原有的功能。

在恢复原界面的基础上,新的界面效果如图2所示。
image.png

图2 新界面效果

在未使用原字库的情况下,用工具软件重新提取了相关汉字的字模,见图3所示。

image.png
图3 提取字模

为了控制运行的进程,在显示图片前为其添加了键控处理,其语句为:

key = key_scan(0);
while(key != KEY1_PRES)
{
                       key = key_scan(0);
}

添加键控后的处理界面见图4所示:
image.png

图4 开始浏览

  1. 检测TF卡读取功能

为验证TF卡的读取功能,在恢复图像显示功能前可恢复图片文件名的显示功能,其语句为:

piclib_ai_load_picfile(pname, 0, 0, 240,320, 1);   /* 获取图片文件名 */
LCD_ShowString(20,12,(char *)pname);         /*
显示图片文件名 */```

实现图片文件名称显示的效果如图5所示:
image.png

图5 显示文件名

  1. 恢复图像显示功能

在完成界面恢复后,要恢复图像显示功能必须对相关的图像显示函数进行更新和补充。

以BMP位图显示为例,其使用的函数为:

uint8_t stdbmp_decode(const char
*filename)

该函数所涉及的图像显示函数为:

pic_phy.draw_point(uint16_t x, uint16_t
y ,uint16_t c)

其替代函数为:

void ili9341_draw_pixel(uint16_t c,
uint16_t x, uint16_t y)

恢复后的BMP位图显示效果如图6至图8所示:
image.png

图6 显示效果
image.png

图7 显示细节
image.png

图8 显示细节

总之,在原功能的基础上要以新的显示驱动来恢复其原有功能还是需要花费一定努力的,并采用一些方法的,当然其效果也是非常令人兴奋的!

视频演示:

数码相框

更多回帖

发帖
×
20
完善资料,
赚取积分