STM32F4 + LCD

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

STM32F4 + LCD

Mensagempor rocknroll » 16 Mai 2013 13:13

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.
Rock N Roll
rocknroll
Byte
 
Mensagens: 218
Registrado em: 11 Out 2006 14:19
Localização: Butantã - São Paulo - SP

Re: STM32F4 + LCD

Mensagempor proex » 16 Mai 2013 15:20

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.


.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Re: STM32F4 + LCD

Mensagempor rocknroll » 16 Mai 2013 22:36

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
Rock N Roll
rocknroll
Byte
 
Mensagens: 218
Registrado em: 11 Out 2006 14:19
Localização: Butantã - São Paulo - SP

Re: STM32F4 + LCD

Mensagempor longo.251272 » 08 Out 2013 16:27

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.
longo.251272
Byte
 
Mensagens: 318
Registrado em: 08 Nov 2011 11:58
Localização: São Paulo - SP

Re: STM32F4 + LCD

Mensagempor proex » 08 Out 2013 18:31

Vcs precisam descobrir qual o controlador é usado nesse display, depois disso fica mais facil esclarecer vcs.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Re: STM32F4 + LCD

Mensagempor longo.251272 » 09 Out 2013 13:18

É 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.
longo.251272
Byte
 
Mensagens: 318
Registrado em: 08 Nov 2011 11:58
Localização: São Paulo - SP

Re: STM32F4 + LCD

Mensagempor proex » 09 Out 2013 13:47

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

.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Re: STM32F4 + LCD

Mensagempor longo.251272 » 09 Out 2013 16:50

Estou tentando mas sem sucesso.

A sequência do array de uma imagem em hex é [ x, y, cor, ... ] ??
longo.251272
Byte
 
Mensagens: 318
Registrado em: 08 Nov 2011 11:58
Localização: São Paulo - SP

Re: STM32F4 + LCD

Mensagempor proex » 09 Out 2013 17:36

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.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Re: STM32F4 + LCD

Mensagempor longo.251272 » 10 Out 2013 09:08

O controlador é SSD1289.

Pensei em pegar a cor de cada pixel da figura e jogar no display. Mas não deu certo.
longo.251272
Byte
 
Mensagens: 318
Registrado em: 08 Nov 2011 11:58
Localização: São Paulo - SP

Re: STM32F4 + LCD

Mensagempor longo.251272 » 10 Out 2013 11:20

Resolvido.
longo.251272
Byte
 
Mensagens: 318
Registrado em: 08 Nov 2011 11:58
Localização: São Paulo - SP

Re: STM32F4 + LCD

Mensagempor EvandrPic » 10 Out 2013 12:18

Posta como conseguiu resolver... ajuda o rocknroll... :shock:

longo.251272 escreveu:Resolvido.
EvandrPic
Dword
 
Mensagens: 2116
Registrado em: 31 Mar 2010 15:05

Re: STM32F4 + LCD

Mensagempor longo.251272 » 10 Out 2013 13:40

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 );
}
longo.251272
Byte
 
Mensagens: 318
Registrado em: 08 Nov 2011 11:58
Localização: São Paulo - SP

Re: STM32F4 + LCD

Mensagempor longo.251272 » 10 Out 2013 15:37

Testei uma imagem no tamanho 320x240 e não funcionou !!! :cry:
longo.251272
Byte
 
Mensagens: 318
Registrado em: 08 Nov 2011 11:58
Localização: São Paulo - SP

Re: STM32F4 + LCD

Mensagempor proex » 10 Out 2013 17:25

O que apareceu na tela?
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Próximo

Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x