Página 1 de 2

STM32F4 + LCD

MensagemEnviado: 16 Mai 2013 13:13
por rocknroll
Boa tarde a todos,

Há muitos meses atrás comprei uma placa da Waveshare composta de algumas placas adicionais.

Finalmente tive um tempo para brincar com a placa ontem e dando uma olhada nas funções relacionadas ao LCD, não encontrei nenhuma que exibisse uma imagem na tela.

Verifiquei que é comum converter-se uma imagem no padrão RGB565.

Usei um programa da própria ST que converte imagens para o padrão RGB565. Esse programa gera um array. O problema é que esse array pode ou não conter header e também é composto de 8 bits, sendo o LCD 16 bits.

Vamos as dúvidas...

O que devo realmente gerar a partir de uma imagem para depois exibi-la no LCD? Fiz uma imagem simples, metade vermelha e metade branca, no array gerado, os bytes não correspondiam as cores que tinha na imagem, porém acredito que seja devido ao padro 565.

Para jogar esse array no LCD, como devo proceder? Tenho que escrever todo array na RAM do LCD ou escrever nele pixel a pixel?

Infelizmente não tenho aqui comigo o modelo do controlador do LCD.

Valeu.

Re: STM32F4 + LCD

MensagemEnviado: 16 Mai 2013 15:20
por proex
Ué, nesse kit nao veio nenhum exemplo disso? Geralmente vem.
Bem, pelo fato de ser imagem, geralmente elas devem ficar no SDCARD, PENDRIVE ou numa Flash Serial de alta densidade.
Agora, se forem imagens pequenas, do tamanho de Icones, vc pode junta-las no seu codigo mas com certeza irá ocupar muito espaço da Flash de programa.

Como seu display esta configurado para o padrão de côr 565, vc deve converter qualquer imagem para esse padrão.

Eu uso o Img2Lcd para isso. É um programa gratuito para converter imagens para diversos padrões, entre eles o 565.

https://code.google.com/p/crazybingo/do ... p&can=2&q=

Esse programa já gera o arquivo .h com a array, para vc incluir no seu codigo.


.

Re: STM32F4 + LCD

MensagemEnviado: 16 Mai 2013 22:36
por rocknroll
Fala proex,

infelizmente o exemplo que veio só escreve um pequeno texto na tela.

Eu fui atrás do código para ver as funções disponíveis e só tinha desenhar linha... Nem tinham as rotinas padrões de desenho de circulo, retângulo, etc... Essas consegui de boa, tem bastante coisa pronta por ai.

Esse programa que você citou veio junto com o CD. Cheguei a gerar o array com ele e com o software da ST para criação de telas.

O problema é que confesso que não sei o que faço com isso... rs Estes programas geram arrays de bytes, como nos exemplos do CD ele usa as cores no formato 0xHHHH, fiquei na dúvida de como utilizo estes bytes do array.

O que pensei é que eu teria um array com 320 x 240 = 76800 no formato 0xHHHH e neste caso iria setar pixel por pixel.

Valeu

Re: STM32F4 + LCD

MensagemEnviado: 08 Out 2013 16:27
por longo.251272
rocknroll

Estou com o mesmo problema que você. Comprei um kit deles também e não veio com um exemplo de escrever uma imagem no LCD. Pode me dar alguma dica ?

Valeu.

Re: STM32F4 + LCD

MensagemEnviado: 08 Out 2013 18:31
por proex
Vcs precisam descobrir qual o controlador é usado nesse display, depois disso fica mais facil esclarecer vcs.

Re: STM32F4 + LCD

MensagemEnviado: 09 Out 2013 13:18
por longo.251272
É um display de 3.2 inch 320x240 com Touch HY32C.

Eu já estou escrevendo nele e criando algo nele. Mas não sei qual a melhor forma de enviar uma imagem pra ele.
Sei que tenho que converter a imagem em uma tabela hex e enviar ponto a ponto pra ele. Nada além disso.

Re: STM32F4 + LCD

MensagemEnviado: 09 Out 2013 13:47
por proex
longo.251272 escreveu:É um display de 3.2 inch 320x240 com Touch HY32C.
.......Sei que tenho que converter a imagem em uma tabela hex e enviar ponto a ponto pra ele. Nada além disso.


É exatamente assim. :D

.

Re: STM32F4 + LCD

MensagemEnviado: 09 Out 2013 16:50
por longo.251272
Estou tentando mas sem sucesso.

A sequência do array de uma imagem em hex é [ x, y, cor, ... ] ??

Re: STM32F4 + LCD

MensagemEnviado: 09 Out 2013 17:36
por proex
Meninu, esse display tem embutido um chip chamado Controlador de Display. Vc tem que descobrir que chip é esse, só assim sera possivel te ajudar.

Cada fabricante adota um Controlador de Display diferente entende? Cada um deles tem uma forma certa de acessar.

Sem saber que Controlador de Display tem ai no seu display, fica dificil.

Re: STM32F4 + LCD

MensagemEnviado: 10 Out 2013 09:08
por longo.251272
O controlador é SSD1289.

Pensei em pegar a cor de cada pixel da figura e jogar no display. Mas não deu certo.

Re: STM32F4 + LCD

MensagemEnviado: 10 Out 2013 11:20
por longo.251272
Resolvido.

Re: STM32F4 + LCD

MensagemEnviado: 10 Out 2013 12:18
por EvandrPic
Posta como conseguiu resolver... ajuda o rocknroll... :shock:

longo.251272 escreveu:Resolvido.

Re: STM32F4 + LCD

MensagemEnviado: 10 Out 2013 13:40
por longo.251272
Segui o exemplo deste portal,

http://www.hmsprojects.com/tft_lcd.html


Tem até imagens já convertidas para hex para testar.

No CoIDE ficou dessa forma.

cpp code
#define  MAX_X  240
#define MAX_Y 320

void LCD_DrawPicture( uint16_t Xpos, uint16_t Ypos, uint16_t dim_x, uint16_t dim_y, const uint32_t *picture)
{
uint16_t x, y;

// GPIO_ResetBits(GPIOD , GPIO_Pin_7); //CS=0;

//LCD_SetAddress(Xpos, Ypos, Xpos + dim_x - 1, Ypos + dim_y - 1);
//Ajustado para posicinar a imagem da direita para a esquerda em X
LCD_SetAddress( MAX_X - Xpos - dim_x, Ypos, MAX_X - Xpos - 1, Ypos + dim_y - 1);

for(x = Xpos; x < (Xpos + dim_x); x++ ) {
for(y = Ypos; y < (Ypos + dim_y); y++ ) {
LCD_WriteData(*picture++);
}
}

LCD_SetAddress( 0, 0, MAX_X - 1, MAX_Y - 1 );

// GPIO_SetBits(GPIOD , GPIO_Pin_7); //CS=1;
}

void LCD_SetAddress( uint16_t Xpos1, uint16_t Ypos1, uint16_t Xpos2, uint16_t Ypos2 )
{
LCD_WriteReg( 0x0044, ( Ypos2 << 8 ) + Ypos1 ); //Column address start2
LCD_WriteReg( 0x0045, Xpos1 ); //Column address start1
LCD_WriteReg( 0x0046, Xpos2 ); //Column address end2
LCD_WriteReg( 0x004E, Ypos1 ); //Column address end1
LCD_WriteReg( 0x004F, Xpos1 ); //Row address start2
LCD_WriteIndex( 0x0022 );
}

Re: STM32F4 + LCD

MensagemEnviado: 10 Out 2013 15:37
por longo.251272
Testei uma imagem no tamanho 320x240 e não funcionou !!! :cry:

Re: STM32F4 + LCD

MensagemEnviado: 10 Out 2013 17:25
por proex
O que apareceu na tela?