Controlador LCD controlador chip-BL55072A

Subrutina de inicialización:
INICIO
0x7C; Subdirección I2C
0xEA; ICSET, chip de reinicio del software
0xC0; MODSET, apaga la pantalla
0xF0; BLKCTL, apaga el parpadeo
0xA3; DISCTL, 80Hz Inversión de línea, modo de alta potencia
0xE8; ICSET, borra el bit de reinicio 1
STOP

Subrutina de actualización de pantalla:
INICIO
0x7C; Subdirección I2C
0xF0; BLKCTL, parpadeando
0xA3; DISCTL, Inversión de línea de 80Hz, modo de alta potencia
0xE8 o 0xEC; ICSET, la dirección alta de la memoria de video es 0 o 1
0xXX; ADSET, configure el inicio de actualización de la memoria de video dirección, generalmente 0x00, actualizada desde cero, esta vez en una instrucción general a 0xE8
...
...
STOP

INICIO
0x7C
0xC8; MODSET, pantalla abierta
STOP

Por último, adjunte un programa de prueba sencillo:

#define Address_BL55072   0x7C
void BL55072_Init(void)
{
	uint8_t BL5502_Init_BUFF[5];
	BL5502_Init_BUFF[0]= 0xEA;
	BL5502_Init_BUFF[1]= 0xC0;
	BL5502_Init_BUFF[2]= 0xF0;
	BL5502_Init_BUFF[3]= 0xA3;
	BL5502_Init_BUFF[4]= 0xE8;
	
	HAL_I2C_Master_Transmit(&hi2c1, Address_BL55072, (uint8_t *)BL5502_Init_BUFF, 5, 100);
}

uint8_t BL5502_BUFF[23];
void SEG_WriteBuffer(uint8_t data)
{
	BL5502_BUFF[0]= 0xF0;
	BL5502_BUFF[1]= 0xA3;
	BL5502_BUFF[2]= 0xE8;
	BL5502_BUFF[3]= 0x00;

	for(int i=4;i<22;i++) 
	{
		BL5502_BUFF[i] = data;//
	}

	HAL_I2C_Master_Transmit(&hi2c1, Address_BL55072, (uint8_t *)BL5502_BUFF, 22, 100);
	BL5502_BUFF[0]= 0xC8;
	HAL_I2C_Master_Transmit(&hi2c1, Address_BL55072, (uint8_t *)BL5502_BUFF, 1, 100);	
}

Supongo que te gusta

Origin blog.csdn.net/qq_37449342/article/details/108383087
Recomendado
Clasificación