⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 +

📁 STM32的恒温消毒柜设计
💻
字号:
#include <string.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>


#define WIDTHBYTES(bits) (((bits)+31)/32*4)		//对于24位真彩色 每一行的像素宽度必须时4的倍数  否则补0补齐

typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef long LONG;


//位图文件头信息结构定义
//其中不包含文件类型信息(由于结构体的内存结构决定,要是加了的话将不能正确读取文件信息)
typedef struct tagBITMAPFILEHEADER 
{
    
    DWORD bfSize; 															//文件大小																				4
    WORD bfReserved1; 													//保留字,不考虑		 															2
    WORD bfReserved2; 													//保留字,同上			 															2
    DWORD bfOffBits; 														//实际位图数据的偏移字节数,即前三个部分长度之和	4
} BITMAPFILEHEADER,tagBITMAPFILEHEADER;


typedef struct tagBITMAPINFOHEADER
{
    DWORD biSize; 														//指定此结构体的长度,为40		 												4
    LONG biWidth; 														//位图宽											 												4
    LONG biHeight; 														//位图高											 												4
    WORD biPlanes; 														//平面数,为1								 													2
    WORD biBitCount; 													//采用颜色位数,可以是1,2,4,8,16,24新的可以是32	2
    DWORD biCompression; 											//压缩方式,可以是0,1,2,其中0表示不压缩						4
    DWORD biSizeImage; 												//实际位图数据占用的字节数														4
    LONG biXPelsPerMeter; 										//X方向分辨率																					4
    LONG biYPelsPerMeter; 										//Y方向分辨率																					4
    DWORD biClrUsed; 													//使用的颜色数,如果为0,则表示默认值(2^颜色位数)			4
    DWORD biClrImportant; 										//重要颜色数,如果为0,则表示所有颜色都是重要的				4
} BITMAPINFOHEADER,tagBITMAPINFOHEADER;


typedef struct tagRGBQUAD 
{

    BYTE rgbBlue; 													//该颜色的蓝色分量
    BYTE rgbGreen; 													//该颜色的绿色分量
    BYTE rgbRed; 														//该颜色的红色分量
    BYTE rgbReserved;											 	//保留值
} RGBQUAD,tagRGBQUAD;


typedef struct RGB_PIXEL
{      //像素的数据类型
    unsigned char   rgbBlue;
    unsigned char   rgbGreen;
    unsigned char   rgbRed;
}RGB_PIXEL;


#define GETR_FROM_RGB16(RGB565)  ((unsigned char)(( ((unsigned short int )RGB565) >>11)<<3))		  			//返回8位 R
#define GETG_FROM_RGB16(RGB565)  ((unsigned char)(( ((unsigned short int )(RGB565 & 0x7ff)) >>5)<<2)) 	//返回8位 G
#define GETB_FROM_RGB16(RGB565)  ((unsigned char)(( ((unsigned short int )(RGB565 & 0x1f))<<3)))       	//返回8位 B
#pragma diag_suppress 870 	//使编译器支持多字节字符,否则会有invalid multibyte character sequence警告 



void Lcd_show_bmp(unsigned short int x, unsigned short int y,unsigned char *pic_name);

int write_bmp(RGB_PIXEL *pixarr, int xsize, int ysize, char *filename);
int write_bmp2(unsigned char  *pixarr, int xsize, int ysize, char *filename);
int write_bmp3(unsigned char  *pixarr, int xsize, int ysize, char *filename);
int Screen_shot(unsigned short int x, unsigned short int y, unsigned short int Width, unsigned short int Height, unsigned char *filename);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -