标题:
stm32内部FLASH图片显示源码
[打印本页]
作者:
1763561344
时间:
2018-3-15 23:18
标题:
stm32内部FLASH图片显示源码
stm32图片显示
本扩展实验是应广大用户需求而精心制作.实现读取内部flash的图像数据,并显示在LCD上.本实验的图像数据由image2lcd V2.9生成.(仅支持16位真彩色图片的显示,其他的情况请大家参考本例程,自行设计即可.)
本代码可以SWD下载仿真.
单片机源程序如下:
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "exti.h"
#include "wdg.h"
#include "timer.h"
#include "lcd.h"
#include "usmart.h"
#include "image2lcd.h"
#include "stdlib.h"
extern const u8 gImage_image1[];//图片数据(包含信息头),存储在image1.c里面.
//Mini STM32开发板扩展实验13
//内部FLASH图片显示 实验
//正点原子@ALIENTEK
int main(void)
{
u8 i=0;
HEADCOLOR *imginfo;
u16 x=0,y=0;
u16 x0,y0;
imginfo=(HEADCOLOR*)gImage_image1; //得到文件信息
Stm32_Clock_Init(9);//系统时钟设置
delay_init(72); //延时初始化
uart_init(72,9600); //串口1初始化
usmart_dev.init(72);//初始化USMART
LED_Init();
LCD_Init();
POINT_COLOR=RED;
LCD_ShowString(30,50,"Mini STM32 ^_^");
LCD_ShowString(30,70,"FLASH PICTURE TEST");
LCD_ShowString(30,90,"ATOM@ALIENTEK");
LCD_ShowString(30,110,"2011/10/09");
delay_ms(1500);//等待1.5秒
srand(imginfo->h*imginfo->w);
while(1)
{
if(i==0)
{
LCD_Clear(0X0000);//黑屏
if(imginfo->w>=240||imginfo->h>=320)
{
POINT_COLOR=RED;
LCD_ShowString(10,70,"The Picture is too large");
continue;
}
x0=x;y0=y;
while((x+imginfo->w)>240||x==x0)//超过屏幕尺寸了
{
x=rand();//获得随机的x值
}
while((y+imginfo->h)>320||y==y0)//超过屏幕尺寸了
{
y=rand();//获得随机的y值
}
image_display(x,y,(u8*)gImage_image1);//在指定地址显示图片
}
i++;
if(i>10)i=0;
LED0=!LED0;
delay_ms(200);
}
}
复制代码
所有资料51hei提供下载:
ALIENTEK MINISTM32 扩展实验13 内部FLASH图片显示实验.rar
(221.31 KB, 下载次数: 140)
2018-3-15 23:17 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1