Image d'affichage OLED

Aujourd'hui, un ami m'a demandé de prendre des polices. Je n'avais pas beaucoup de contact avec le logiciel de prise de polices auparavant. Aujourd'hui, j'ai essayé imag2lcd pour supprimer des fichiers bmp, puis j'ai affiché des images via stm32 et oled.

Cliquez d'abord sur Ouvrir pour ouvrir une image que vous souhaitez afficher (certains formats d'image ne sont pas pris en charge). La largeur et la hauteur maximales doivent être de 128*64. Après avoir configuré selon la figure suivante, n'oubliez pas de régler la luminosité et le contraste pour le rendre plus clair , puis définissez le son enregistré.Notez l'image de sortie ci-dessous (54, 64)

Ouvrez ptolcd2002, sélectionnez le mode graphique dans le mode, cliquez sur le même graphique que le dossier dans le logiciel pour ouvrir le fichier bmp enregistré avec ptolcd2002, (rappelez-vous les options, la taille de l'image sous la barre d'aide), me voilà (54 *64) - logiciel Si le problème n'est pas clair, vous pouvez également le voir dans l'image de sortie sous le logiciel imag2lcd précédent.

insérez la description de l'image ici

Ensuite, il y a la configuration de la police, qui est configurée selon les exigences du code, comme indiqué sur la figure.

insérez la description de l'image ici

Cliquez ensuite pour générer la police et placez-la dans le tableau préparé, ce qui suit est la page de cochon que j'ai sortie

unsigned char nao1[]=
{
    
    
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0x40,0x40,0x40,
0xC0,0x40,0xC0,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0xE0,0x30,0x18,0x08,0x98,
0xF0,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x7E,
0xC1,0x86,0x86,0xCC,0x4C,0x20,0x1C,0x03,0x00,0x00,0x1C,0x2A,0x3E,0x2B,0x1D,0xE1,
0x53,0xF3,0x52,0xA4,0x46,0x0B,0x18,0x1C,0x23,0xC1,0xA1,0x31,0x0F,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x06,0x04,0xE8,0x38,0x18,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0xC0,0x20,0x10,0x10,0x10,0x20,
0xC1,0x06,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0xC0,0x00,0x00,0x00,0x00,
0x00,0x3F,0x60,0xC0,0x83,0x04,0x08,0x18,0x10,0x10,0x10,0x18,0x08,0x04,0x00,0x00,
0x01,0x02,0x04,0x04,0x04,0x82,0xC1,0x38,0x0F,0x00,0x00,0x00,0x00,0xC0,0xE0,0x80,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
0x01,0x01,0x03,0x03,0x06,0x84,0xFC,0x1C,0x06,0x01,0x01,0x03,0x02,0x06,0x04,0x04,
0x04,0x0C,0x0C,0x0C,0x0C,0x0C,0x04,0x04,0x06,0x02,0x03,0x03,0x0E,0x78,0xCC,0x06,
0x86,0x43,0x43,0x81,0x03,0x03,0x80,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x40,0xA0,0x20,0x20,0x20,0x20,0x40,0xC0,0x00,0x00,0xF8,0x1F,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x03,0xFE,0xE1,0x22,0x22,0x12,0x0B,0x0F,0xC0,0x60,0x10,0x10,
0x10,0x90,0x60,0x00,0x00,0x00,0x80,0x40,0x41,0x42,0x42,0x42,0x42,0x43,0xC0,0x06,
0x07,0x04,0x04,0x04,0xC4,0x44,0x44,0x74,0x14,0x1C,0x1C,0xF4,0x04,0x04,0x04,0x04,
0x84,0x44,0x44,0x74,0x14,0x1C,0x1C,0xF4,0x04,0x04,0x04,0x04,0x07,0x00,0x02,0x60,
0x60,0xA0,0x21,0x21,0x21,0x21,0x21,0x20,0xC0,0x00,0x00,0x07,0x08,0x08,0x08,0x08,
0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x04,0x04,
0x04,0x07,0x00,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x04,0x04,0x04,0x03,0x00,
};

C'est un fichier de projet envoyé par un ami, le code a été écrit par le marchand, c'est vraiment parfumé.

/***********功能描述:显示显示BMP图片128×64起始点坐标(x,y),x的范围0~127,y为页的范围0~7*****************/
void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[])
{
    
     	
 unsigned int j=0;
 unsigned char x,y;
  
  if(y1%8==0) y=y1/8;      
  else y=y1/8+1;
	for(y=y0;y<y1;y++)
	{
    
    
		OLED_Set_Pos(x0,y);
    for(x=x0;x<x1;x++)
	    {
    
          
	    	OLED_WR_Byte(BMP[j++],OLED_DATA);	    	
	    }
	}
} 

La fonction a quatre paramètres formels, x et y peuvent être compris comme des lignes et des colonnes, x0 est la colonne de début à afficher, x1 est la colonne de fin, y0 est la ligne de début, y1 est la ligne de fin (la ligne ici est un multiple de 8), Si la taille de l'image de sortie ci-dessus est (54, 64), alors la différence entre la colonne de début et la colonne de fin doit être de 54, c'est-à-dire x1-x0=54, et de même (y1-y0 )*8=64. Enfin, la fonction principale appelle la fonction OLED_DrawBMP(); pour l'afficher.

 OLED_DrawBMP(73,0,127,8,nao1);	//靠右显示	
 OLED_DrawBMP(0,0,54,8,nao1);//靠左显示	

Ce qui précède est l'ensemble du processus. S'il y a une erreur, veuillez signaler le grand Dieu. Si ce n'est pas clair, vous pouvez commenter et communiquer directement. Si vous avez besoin de logiciels ou de programmes connexes, vous pouvez commenter directement !

Je suppose que tu aimes

Origine blog.csdn.net/qq_52487856/article/details/120029561
conseillé
Classement