Un paso de aprendizaje siete agujas controlador de interfaz SPI pantalla OLED 0,96 pulgadas (código portable adjunto) - basa STM32

Una descripción breve y el pin

Aquí Insertar imagen Descripción
Tener en nuestras manos no usarán OLED, un programa no pueden leer, cómo hacerlo? Comenzó a leer desde el pin. Si conoce el pin es la razón, por supuesto, ser capaz de entender el código de conducción.
En primer vistazo a la Pin Descripción :

GND VCC D0 D1 RES corriente continua CS
Alimentación tierra N potencia (3 ~ 5.5V) pin de reloj SPI pines de datos SPI pin de reset Los datos y comandos de control pasadores seleccione anclar

Obviamente, GND y VCC conectados a la fuente de alimentación, no hay electricidad hablando de cualquier cosa. D0 , D1 , para los pasadores de interfaz SPI, o complete el comando de transferencia de datos, para el protocolo SPI no es consciente de, se recomienda para aprender la información relevante del acuerdo, después de todo, es más comúnmente utilizado. CS es un selecto pin de chip, cuando se tira de baja transmisión válida . la DC que, para la selección de datos o un comando de escritura de escritura o una orden de escritura hacia abajo, por ejemplo, cuando los datos de escritura se tira para ajustar el contraste, set de coordenadas x, y, con el comando de escritura; .. cuando el píxel de presentación con los datos de escritura. RES es un pin de reset, activa baja a cero durante algún tiempo durante la inicialización lograr reinicio, para prepararse para el trabajo de seguimiento.

2 código del controlador

2.1 inicialización

2.1.1 Configuración de las clavijas

alfileres ordinarios todos pueden configurarse para salida push-pull.

2,2 inicialización OLED

En primer reinicio,

    OLED_RST_Set();
	delay_ms(100);
	OLED_RST_Clr(); //拉低200ms实现复位
	delay_ms(200);
	OLED_RST_Set(); 

El siguiente escritura comienzo para el comando apropiado (esto está dispuesto principalmente SSD1306 (controlador OLED IC) del registro, véase la hoja de datos correspondiente), la eliminación de parte del código:

	OLED_WR_Byte(0xAE,OLED_CMD);//--turn off oled panel(关闭oled面板显示)
	OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
	OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
	OLED_WR_Byte(0x40,OLED_CMD);//--set start line address  Set Mapping RAM Display Start Line (0x00~0x3F)
	OLED_WR_Byte(0x81,OLED_CMD);//--set contrast control register(设置对比度控制控制寄存器)
	                            //写0x81命令后,紧接着写入相应数值(0-255),数值越大亮度越大
	OLED_WR_Byte(0xCF,OLED_CMD); // Set SEG Output Current Brightness(0xCF表示亮度大小)
	......

Por último, el panel OLED abierta, borrar la pantalla, configurar el origen de coordenadas

	OLED_WR_Byte(0xAF,OLED_CMD); /*display ON*/ 
	OLED_Clear();
	OLED_Set_Pos(0,0);

Función 2.2 Función

2.2.1 una función de transferencia Byte
void OLED_WR_Byte(u8 dat,u8 cmd)
{	
	u8 i;			  
	if(cmd) //cmd为1,拉高DC
	  OLED_DC_Set();
	else //cmd为0,拉低DC
	  OLED_DC_Clr();
	  		  
	OLED_CS_Clr();//拉低片选信号

	for(i=0;i<8;i++)//for循环完成一个字节的传输,每个CLK的上升沿,传输一个bit,参考spi传输时序图
	{			  
		OLED_SCLK_Clr();
		if(dat&0x80)
		   OLED_SDIN_Set();
		else 
		   OLED_SDIN_Clr();
		OLED_SCLK_Set();
		dat<<=1;   
	}				 		  
	OLED_CS_Set(); //拉高片选信号
	OLED_DC_Set(); //拉高DC 	  
} 

Transmisión de un gráfico de temporización:
Aquí Insertar imagen Descripción

2.2.2 Función de visualización de un char
void OLED_ShowChar(u8 x,u8 y,u8 chr)
{      	
	unsigned char c=0,i=0;	
		c=chr-' ';//得到偏移值			
		if(x>Max_Column-1){x=0;y=y+2;} //x超过最后一列, 换行
		if(SIZE ==16)//8*16
		{
			OLED_Set_Pos(x,y);	//设置坐标,其中x为列地址,y为页地址,参考下图分页情况
			for(i=0;i<8;i++) //显示8*16点阵的上半部分
			OLED_WR_Byte(F8X16[c*16+i],OLED_DATA);
			
			OLED_Set_Pos(x,y+1);//光标移到下一页
			for(i=0;i<8;i++) //显示8*16点阵的下半部分,参考下图显示示意图
			OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA);
		}
		else //6*8
		{	
			OLED_Set_Pos(x,y+1);
			for(i=0;i<6;i++)
			OLED_WR_Byte(F6x8[c][i],OLED_DATA);	
		}
}

Paginación:
Aquí Insertar imagen Descripción
Carácter 8 * 16 formato muestra una vista esquemática, de izquierda a derecha, de arriba a abajo, la primera mitad de la pantalla, y luego mover el cursor a la siguiente, sigue mostrando la mitad inferior de las
Aquí Insertar imagen Descripción
otras funciones de las funciones de visualización, que se basa en visualización de caracteres, están interesados en su propia investigación

3 Controlador de enlace de código

https://download.csdn.net/download/weixin_40134414/12302024

Escribir no es lo suficientemente detallada no lo suficientemente profundo, hay una mejor comprensión del seguimiento y luego pasó a añadir.

Publicado cuatro artículos originales · ganado elogios 7 · visitas 384

Supongo que te gusta

Origin blog.csdn.net/weixin_40134414/article/details/105308234
Recomendado
Clasificación