完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
笔记:用串口发送视频到单片机
基础运行 单片机程序 思路非常简单,需要单片机连接到任意一款支持窗口连续写入的屏幕(即通过命令指定一个“活动”窗口,随后一直发送颜色数据,便会自动地在窗口连续写入并换行,不需要每次写入一个点就需要再次写入坐标指令)。随后在串口中断函数中将串口数据直接通过其他的数据协议写入屏幕即可。如下 视频处理 同时,也要对输入的图像进行处理。因为直接通过串口发送视频文件,单片机并不能进行解码。而需要将视频变成胶卷一般的形式发送至单片机中。 首先根据屏幕显示窗口大小,用任意剪辑软件将视频的尺寸修改为窗口大小。随后将视频拼接为一张图片。此步骤有许多方法,诸如使用PS脚本等。此处将采用matlab进行处理,代码如下。 此思路对于51及stm32乃至其他单片机都通用,若运行环境不“苛刻”的盆友们不用看下去了,下文将介绍如何在主频/串口传输速度不理想的情况下最优化显示效果。 此处使用的屏幕是ST7735屏幕。ST7735默认是使用RGB565颜色模式,即16位颜色模式。而51单片机的串口一次仅能发送8位数据,每一个像素点则需要连续传输两次数据,这样子会使屏幕刷新速度降低一半。然而ST7735不支持8位色彩模式。因此下文将使用一种取巧的方法 速度优先的改进 如上文所示,当串口传输速率成为了显示速度最大的障碍时,就需要改善传输的速度。因此,此处使用索引颜色模式显示图片,这样串口传输颜色值的时候只需要一字节的数据便可以显示一个像素点。 图像预处理 正常的视频流的色彩模式都是24色,然而24色则需要三字节的数据来显示一个像素点。因此需要将视频流处理为256色,即索引颜色模式。此处采用的索引颜色使用windows索引色。 利用先前的matlab脚本,在 此处保存图片后,可以在ps中打开经过胶卷化处理的图片,将其色彩模式改为索引颜色模式,随后保存,再次导入即可。 单片机程序 上面的单片机程序中有这个部分 其中的color_buf便是索引色色库,由于ST7735不支持8位色彩,只支持16位及以上颜色模式,因此就需要将8位色转换为16位色,此处就使用索引色色库实现。SBUF对应的每一个字节都是色库中唯一的一种16位颜色,将返回的16位色由SPI发送到屏幕就可以控制其中一个像素点了。 当然大家也可以尝试一字节控制2,4,乃至8个像素点,此处不展开。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1553 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1499 浏览 1 评论
925 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
660 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1551 浏览 2 评论
1846浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
605浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
503浏览 3评论
505浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
487浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 18:34 , Processed in 1.567296 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号