前言
俗话说:有屏幕的地方就会有badapple。
下面带来使用0.96寸OLED屏幕显示badapple的教程。
1、获取视频
首先从网上下载badapple的视频,下载地址:badapple
2、抓取视频图片
使用OLED播放视频的思想就是将视频分成一张一张的图片然后进行显示图片
将视频分成一张一张的图片需要使用软件 KMPlayer 来获取,软件下载方式自己在网上下载即可。
- 将视频badapple拖放到软件 KMPlayer 中,右击选择捕获->高级捕获:
- 设置捕获图片的尺寸
设置完成后,点击开始,紧接着播放视频~
然后会看到KMPlayer软件安装目录下的Capture文件夹下有很多图片产生
3、对捕获的图片进行取模
利用软件Image2Lcd v3.2批量对图片进行取模,取模后的结果选择生成bin文件
等待片刻,会在KMPlayer软件安装目录下的Capture文件夹下生成一个文件夹batch:
4、合并bin文件
在文件夹batch里打开cmd:
接着输入以下命令:
copy /b *.bin badapple.bin
合并完成后在batch文件夹最下面找到badapple.bin文件剪切粘贴到内存卡。
5、编写代码
现在bin文件已经制作完成了,也放到了SD卡中了,接下来就是从SD卡中读取出来并在OLED上显示出来即可。
void badapple_play(void)
{
unsigned char G_Bin[1024];
/*BIN图形显存 */
FRESULT res;
/*用来指示运行情况 */
FIL fsrc;
/* 文件对象指针 */
uint32_t ls_move = 0;
/* 存储文件指针移动 */
UINT br;
/*成功读取的字节个数 */
res = f_open(&fsrc, "0:/badapple.bin", FA_READ);
if (res == FR_OK) {
//文件的路径要对应,即前面把badapple.bin放在SD根目录下
while (1) {
res = f_lseek(&fsrc, ls_move);
res = f_read(&fsrc, G_Bin, sizeof(G_Bin), &br);
if (br != 1024) {
/* 已经把数据读取完成 */
ls_move = 0;
break;
}
OLED_ShowPicture(0, 0, 128, 64, G_Bin);/*显示帧数据 */
SysTick_Delay_ms(70); /*加点延迟,看起来不会太鬼畜*/
ls_move += 1024; /*bin件数据位置偏移 */
}
}
}
编译之后下载到STM32中即可看到效果,效果展示:Bilibili