36. 图片显示实验

发布者:黄金大花猫最新更新时间:2017-11-10 来源: eefocus关键字:图片显示  stm32 手机看文章 扫描二维码
随时随地手机看文章

一。 图片显示概述

1. 常见图片的格式

36. <wbr>图片显示实验
36. <wbr>图片显示实验

36. <wbr>图片显示实验

36. <wbr>图片显示实验

36. <wbr>图片显示实验

二。实验程序讲解

注:由于解码程序的问题,不是所有的 JPEG、JPG 图片都能打开,如果不能打开,则用 XP 自带的画图工具保存一下,再放到 PICTURE 文件夹下就可以打开了。


   bmp.c 和 bmp.h 用于实现对 bmp 文件的解码; tjpgd.c 和 tjpgd.h 用于实现对 jpeg/jpg文件的解码; gif.c 和 gif.h 用于实现对 gif 文件的解码。

  piclib.c文件提供了用于解码图片的函数的入口,根据不同的图片文件,调用相应的解码程序。

//智能画图

//FileName:要显示的图片文件  BMP/JPG/JPEG/GIF

//x,y,width,height:坐标及显示区域尺寸

//acolor  :alphablend的颜色(仅对不大于320*240的32位bmp有效!)

//abdnum  :alphablend的值(0~32有效,其余值表示不使用alphablend,仅对不大于320*240的32位bmp有效!)

//图片在开始和结束的坐标点范围内显示

u8 ai_load_picfile(const u8 *filename,u16 x,u16 y,u16 width,u16 height)

{

u8 res;//返回值

u8 temp;

if((x+width)>lcddev.width)return PIC_WINDOW_ERR; //x坐标超范围了.

if((y+height)>lcddev.height)return PIC_WINDOW_ERR; //y坐标超范围了.  

//得到显示方框大小    

if(width==0||height==0)return PIC_WINDOW_ERR; //窗口设定错误

picinfo.S_Height=height;

picinfo.S_Width=width;

//显示区域无效

if(picinfo.S_Height==0||picinfo.S_Width==0)

{

picinfo.S_Height=lcddev.height;

picinfo.S_Width=lcddev.width;

return FALSE;   

}

//显示的开始坐标点

picinfo.S_YOFF=y;

picinfo.S_XOFF=x;

//文件名传递  

temp=f_typetell((u8*)filename); //得到文件的类型

switch(temp)

{  

case T_BMP:

res=stdbmp_decode(filename); //解码bmp    

break;

case T_JPG:

case T_JPEG:

res=jpg_decode(filename); //解码JPG/JPEG    

break;

case T_GIF:

res=gif_decode(filename,x,y,width,height); //解码gif    

break;

default:

res=PIC_FORMAT_ERR;   //非图片格式!!!  

break;

}     

return res;

}


关键字:图片显示  stm32 引用地址:36. 图片显示实验

上一篇:31. FATFS文件系统的基本知识
下一篇:33. 外部SRAM实验

推荐阅读最新更新时间:2024-03-16 15:44

STM32中断式发送特点和RS485方向控制流程
STM32的数据发送有两个中断标志,一个是发送数据寄存器空标志,一个是发送完毕标志。两个标志都可以引起中断. 要以中断的方式发送一个数据包,流程是这样的: 1.设置RS485的方向为发送,使能发送寄存器空中断,使能完毕进入串口中断。 2.串口中断里读取串口状态,并填充一个数据到发送数据寄存器,硬件自动清除发送数据寄存器空标志,串口数据发送开始。 3.串口发送完一个数据,发送数据寄存器变空,再进入中断,继续填充下一个数据,直到最后一个数据填充完, 使能串口 发送完毕中断。 4.最后一个数据发送完毕,再次进入中断, 清除发送数据寄存器空标志,清除发送完毕中断标志,清除这两个中断标志 的使能位,设置RS485的方向为接收.
[单片机]
STM32 分散加载文件 .sct 解析
1、STM32 启动文件与 .sct 文件分析 1) 定义STACK段,{NOINIT,读写}:分配一段内存大小为0.5K; 2) 定义HEAP段, {NOINIT,读写}:分配一段内存大小为1K; 3) 定义RESET段,{DATA,只读}:DCD各种中断向量; 4) 定义|.text|段,{CODE,只读}:Reset_Handler函数,函数中最后加载了__main; 对剩余的中断函数进行了弱定义; 在最后还有一段用户初始化堆栈的代码__user_initial_stackheap。 那这些代码都存放在什么位置呢? 5) 分析 .sct 文件: 分散加载文件(即scatter file,后
[单片机]
STM32_TIM输出PWM波形
前言 今天讲解“STM32F103 TIM输出PWM波形”,提供的软件工程支持最大输出18MHz的PWM波形,函数接口只有两个参数:频率Freq 和 占空比Dutycycle。 定时器的功能很强大,今天讲解的PWM属于定时器中比较输出的功能,难度算一般吧(懂了的人决定很简单),因为使用了比较的功能。 PWM在实际应用中特别广泛,可能在校的学生不是很了解,但对于很多工作的人来说PWM的应用基本上遍布整个电子化的时代。对于电子相关专业的学生来说,信号发生器都不陌生,信号发生器就是PWM典型的应用。 本文特点:1.提供讲解的软件工程; 2.图片代码比直接贴出源代码容易阅读。 本着免费分享的原则,将讲解的工程源代码分享给大家,还望看到
[单片机]
STM32_TIM输出PWM波形
关于STM32的基本知识
STM32简介 STM32是“意法半导体”生产的基于“ARM公司Cortex-M3内核”的32位高性能MCU。 ST——芯片制造商意法半导体,SOC厂商 ARM——IP厂商,负责芯片内核设计的公司 M——Microelectronics的缩写,指微控制器 32——指它是一个32位的微控制器 注意:51单片机是5V工作电压,而STM32是3.3V工作电压。STM32芯片结构,如下图所示。 STM32和ARM7的关系 ARM7和STM32的内核都是由ARM公司设计的。ARM7内核采用的是冯诺依曼结构(也就是计算机CPU采用的结构)而STM32采用的是哈佛结构。STM32是ARM公司设计出来取代ARM7的,所以它的性能优于ARM7。
[单片机]
关于<font color='red'>STM32</font>的基本知识
keil+stm32+jlink利用swd方式进行printf输出
使用ITM机制实现调试stm32单片机,实现printf与scanf。 1. ITM简介 ITM机制是一种调试机制,是新一代调试方式,在这之前,有一种比较出名的调试方式,称为半主机(semihosting)方式。 在pc上编写过C语言的人都知道,printf可以向控制台输出,scanf可以从控制台获取输入,这里的printf/scanf都是标准库函数,利用操作系统的这些函数,我们可以很方便的调试程序。在嵌入式设备上(如stm32单片机平台上)开发工具(如MDK/IAR)也都提供了标准库函,自然也提供了printf/scanf函数,那么这些函数是否可以使用呢? 问题来了,printf向哪里输出呢?并且大部分情况下,也没有键盘,又如何
[单片机]
keil+stm32+jlink利用swd方式进行printf输出
STM32--SYSTICK超简易定时器
上次的 定时器搞得我比较晕,勉强调通了程序,就实用主义来说应该算是勉强合格了。 当然CORTEX-M3独有的定时功能可是超级简单的 那就是SySTick,所谓的系统定时器.配置方式简单 简单的不能再简单,因为STM32 的库函数已经帮我们搞好了,只需要调用一个函数,就可以配 置系统时钟的频率和开启系统时钟的中断.呵呵....不过这么好用的定时器只有一个。 //SYSTICK 分频--1ms的系统时钟中断 if (SysTick_Config(SystemFrequency / 1000)) { /* Capture error */ while (1); } 就是这么简单,系统就会产生一个1MS 的系统时钟中断(如果除数是50
[单片机]
STM32--SYSTICK超简易定时器
基于STM32平台实现SVPWM调制
SVPWM SVPWM是空间矢量脉宽调制(Space Vector Pulse Width Modulation)的简称,通常由三相逆变器的六个功率开关管组成,经过特定的时序和换相所所产生的脉冲宽度调制波,最终输出的波形可能会十分接近理想的正弦波形。具体如下图所示;左侧为复平面,即空间矢量,右侧为时域的正弦波形。 关于SVPWM原理的文章非常多,这里可以推荐一下网上一个非常不错的教程《SVPWM的原理及法则推导和控制算法详解第五修改版》,本文将如何实现SVPWM进行简单的介绍。 IQMATH TI的片子很香,控制方面,TI无疑是做的最好的方案之一,相对来说资料也非常齐全;另外TI针对没有浮点运算器的定点DSP推出了IQMATH
[单片机]
基于<font color='red'>STM32</font>平台实现SVPWM调制
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved