打印
[STM32H7]

【STM32H7S78-DK测评】数码相框的基本实现

[复制链接]
558|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jobszheng|  楼主 | 2024-10-29 02:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jobszheng 于 2024-10-29 02:45 编辑

【STM32H7S78-DK测评】数码相框的基本实现

前言

数码相框,在当年还是属于高端数码产品。做为一名80后,数码相框的流行期正值我大学本科阶段,看着自己家人的照片可以一张一张的在写字台,在茶几,在电视柜上播放,那高级感特别的自豪。可是,当年一款飞利浦的640x480分辨率的白色数码相框要800多元,七寸显示大小吧!画图的细腻程度较现在的差距还是蛮大的!当年虽然有万般喜爱,但苦于生计,也只是在电子商场的展台远远地看看而已。

数码相框的功能

  • 数码相框首先要显示图片
  • 数码相框可显示与切换多张图片
  • 数码相框可有音乐背景播放功能

寥寥几字把数码相框的功能说了一个大概。其实,当年的数码相框产品要比这个出色的多,只是今天我们时间有限,挑重点的功能特性来说罢了。

项目实现功能

  • 显示图片的功能实现。在本次评测阶段,我们使用STM32H7的LTDC外设功能来驱动液晶显示器,并显示我们经过格式化转储后的图片数据。主要目的还是对图片进行压缩大小,以尽可能多的保存图片;
  • 对图片的切换实现。我们采用DMA2D功能,在2个图层之间做变换切换。充分利用STM32H7的硬件对2个图层的处理达到图片切换的自然,丝滑处理;
  • 对于背景音乐来说,STM32H7S78,则直接支持I2S外设接口,可以轻松连接音频设备。为后续我们播放音乐提供硬件支持;

项目软件代码

我们将图片保存到外围的NorFlash之中,然后,在主程序中按顺序调用。数码相框的软件代码实现并不难:

相关的核心代码如下:

void pic_show(const uint8_t **pic_ptr) {
        LTDC_LayerCfgTypeDef pLayerCfg1 = { 0 };

        pLayerCfg1.WindowX0 = 0;
        pLayerCfg1.WindowX1 = 800;
        pLayerCfg1.WindowY0 = 15;
        pLayerCfg1.WindowY1 = 465;
        pLayerCfg1.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
        pLayerCfg1.Alpha = 200;
        pLayerCfg1.Alpha0 = 0;
        pLayerCfg1.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
        pLayerCfg1.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
        pLayerCfg1.FBStartAdress = (uint32_t) pic_ptr;
        pLayerCfg1.ImageWidth = 800;
        pLayerCfg1.ImageHeight = 480;
        pLayerCfg1.Backcolor.Blue = 0;
        pLayerCfg1.Backcolor.Green = 0;
        pLayerCfg1.Backcolor.Red = 0;
        if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg1, 1) != HAL_OK) {
                Error_Handler();
        }
}

while (1) {
                /* USER CODE END WHILE */

                /* USER CODE BEGIN 3 */
                HAL_Delay(5000);
                pic_show(&image_01);
                HAL_Delay(5000);
                pic_show(&image_02);
                HAL_Delay(5000);
                pic_show(&image_03);
                HAL_Delay(5000);
                pic_show(&image_04);
                HAL_Delay(5000);
                pic_show(&image_05);
                HAL_Delay(5000);
                pic_show(&image_06);
        }
        /* USER CODE END 3 */
}



项目展示


感谢我家已经2.5岁的虎虎小宝宝的出镜。

项目后期改进

本次原计划增加SD卡的文件读写功能。这样,更新图片就更加方便了。不过,当年也只有高端的数码相框才支持从SD卡读取图片并显示的功能。

项目总结

STM32H7RS-DK评估板做为宇宙最强开发板在上手时还是有些难度,发挥其优秀的性能,还是需要研发人员认真,仔细,详实的了解芯片,阅读芯片,读懂芯片。

本次试用评测暂告一段落,待我参加完考试后,再来给大家继续分享。欢迎大家关注21ic论坛,关注我。

谢谢大家^_^


使用特权

评论回复
沙发
Amazingxixixi| | 2024-10-31 16:23 | 只看该作者
从SD卡读取图片么?

使用特权

评论回复
板凳
jobszheng|  楼主 | 2024-10-31 16:46 | 只看该作者
Amazingxixixi 发表于 2024-10-31 16:23
从SD卡读取图片么?

唉!
惭愧啊!调试的时候进度缓慢,最后,还是把SD卡的读写给暂时去掉了。
不过,我计划在11月底更新成支持SD卡的文件

期待一下吧

使用特权

评论回复
地板
地瓜patch| | 2024-10-31 19:10 | 只看该作者
做个真人大小的数码相框有市场不

使用特权

评论回复
5
jobszheng|  楼主 | 2024-11-1 16:54 | 只看该作者
地瓜patch 发表于 2024-10-31 19:10
做个真人大小的数码相框有市场不

版主,您说的这个和广告屏 貌似没有太大区别了吧~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:嵌入式技术专家
简介:热爱开源,乐于分享。在嵌入式技术领域里面,主攻通讯协议,Modbus,TCP/IP以及虚拟化和RTOS

16

主题

373

帖子

2

粉丝