Например TDA7294

Форум РадиоКот • Просмотр темы - инициализация SSD1289 + STM32F407VG6
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 01:07:30

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: инициализация SSD1289 + STM32F407VG6
СообщениеДобавлено: Вт ноя 26, 2013 00:26:43 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс июл 18, 2010 23:17:10
Сообщений: 44
Рейтинг сообщения: 0
не могу запустить SSD1289

index считал 0х8989

и все дальше не получается кто знает подскажите

Спойлер#include "stm32f4xx_gpio.h"
//#include "stm32f4xx_spi.h"
#include "stm32f4xx_rcc.h"
//#include "stm32f4xx_dma.h"
#include "stm32f4xx.h"

#define line 240
#define colum 320

#define CS_ON GPIO_SetBits(GPIOD,GPIO_Pin_15);
#define CS_OFF GPIO_ResetBits(GPIOD,GPIO_Pin_15);

#define RS_ON GPIO_SetBits(GPIOD,GPIO_Pin_14);
#define RS_OFF GPIO_ResetBits(GPIOD,GPIO_Pin_14);

#define RD_ON GPIO_SetBits(GPIOD,GPIO_Pin_13);
#define RD_OFF GPIO_ResetBits(GPIOD,GPIO_Pin_13);

#define WR_ON GPIO_SetBits(GPIOD,GPIO_Pin_12);
#define WR_OFF GPIO_ResetBits(GPIOD,GPIO_Pin_12);

#define RESET_ON GPIO_SetBits(GPIOD,GPIO_Pin_11);
#define RESET_OFF GPIO_ResetBits(GPIOD,GPIO_Pin_11);

#define in 1
#define out 2

u16 LCD_index;
u16 temp;

//uint16_t LCD_BUF[(320*240)/2];//*2

/*
*
* CS PD15
* RS PD14
* WR PD13
* RD PD12
* RESET PD11


*
* D0 PE0
* D1 PE1
* D2 PE2
* D3 PE3
* D4 PE4
* D5 PE5
* D6 PE6
* D7 PE7
* D8 PE8
* D9 PE9
* D10 PE10
* D11 PE11
* D12 PE12
* D13 PE13
* D14 PE14
* D15 PE15
*
*/

void PORT_DATA_init(u8 data)
{
GPIO_InitTypeDef GPIO_InitStructure;

if(data == 2)//out
{
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);

GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_All);//DATA 0...15
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOE, &GPIO_InitStructure);
}

if(data == 1)//in
{
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);

GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_All);//DATA 0...15
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOE, &GPIO_InitStructure);
}


RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE);

GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_15 | GPIO_Pin_14 | GPIO_Pin_13 | GPIO_Pin_12 | GPIO_Pin_11);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}

void Write_Command(u16 addr)
{
GPIO_Write(GPIOE,addr);
CS_OFF;
RS_ON;
WR_OFF;
WR_ON;
CS_ON;
}

void lcd_data_write(u16 data)
{
RS_OFF;
WR_OFF;
RD_ON;
CS_OFF;
GPIO_Write(GPIOE,data);
CS_ON;
}


void LCD_Write_REG(u16 addr,u16 data)
{
RS_ON;
WR_OFF;
RD_ON;
CS_OFF;
GPIO_Write(GPIOE,addr);
CS_ON;

RS_OFF;
WR_OFF;
CS_OFF;

RD_ON;
GPIO_Write(GPIOE,data);
RD_OFF;
CS_ON;
}

void LCD_READ_index()
{
RS_ON;
WR_OFF;
RD_ON;
CS_OFF;
GPIO_Write(GPIOE,0);
CS_ON;

PORT_DATA_init(in);

CS_OFF;
LCD_index = GPIOE->IDR;
CS_ON;

PORT_DATA_init(out);
}


void lcd_init()
{
if( LCD_index == 0x8989 )
{
LCD_Write_REG(0x0000,0x0001); delay_ms(50);
LCD_Write_REG(0x0003,0xA8A4); delay_ms(50);
LCD_Write_REG(0x000C,0x0000); delay_ms(50);
LCD_Write_REG(0x000D,0x080C); delay_ms(50);
LCD_Write_REG(0x000E,0x2B00); delay_ms(50);
LCD_Write_REG(0x001E,0x00B0); delay_ms(50);
LCD_Write_REG(0x0001,0x2B3F); delay_ms(50); /* 320*240 0x2B3F */
LCD_Write_REG(0x0002,0x0600); delay_ms(50);
LCD_Write_REG(0x0010,0x0000); delay_ms(50);
LCD_Write_REG(0x0011,0x6070); delay_ms(50);
LCD_Write_REG(0x0005,0x0000); delay_ms(50);
LCD_Write_REG(0x0006,0x0000); delay_ms(50);
LCD_Write_REG(0x0016,0xEF1C); delay_ms(50);
LCD_Write_REG(0x0017,0x0003); delay_ms(50);
LCD_Write_REG(0x0007,0x0133); delay_ms(50);
LCD_Write_REG(0x000B,0x0000); delay_ms(50);
LCD_Write_REG(0x000F,0x0000); delay_ms(50);
LCD_Write_REG(0x0041,0x0000); delay_ms(50);
LCD_Write_REG(0x0042,0x0000); delay_ms(50);
LCD_Write_REG(0x0048,0x0000); delay_ms(50);
LCD_Write_REG(0x0049,0x013F); delay_ms(50);
LCD_Write_REG(0x004A,0x0000); delay_ms(50);
LCD_Write_REG(0x004B,0x0000); delay_ms(50);
LCD_Write_REG(0x0044,0xEF00); delay_ms(50);
LCD_Write_REG(0x0045,0x0000); delay_ms(50);
LCD_Write_REG(0x0046,0x013F); delay_ms(50);
LCD_Write_REG(0x0030,0x0707); delay_ms(50);
LCD_Write_REG(0x0031,0x0204); delay_ms(50);
LCD_Write_REG(0x0032,0x0204); delay_ms(50);
LCD_Write_REG(0x0033,0x0502); delay_ms(50);
LCD_Write_REG(0x0034,0x0507); delay_ms(50);
LCD_Write_REG(0x0035,0x0204); delay_ms(50);
LCD_Write_REG(0x0036,0x0204); delay_ms(50);
LCD_Write_REG(0x0037,0x0502); delay_ms(50);
LCD_Write_REG(0x003A,0x0302); delay_ms(50);
LCD_Write_REG(0x003B,0x0302); delay_ms(50);
LCD_Write_REG(0x0023,0x0000); delay_ms(50);
LCD_Write_REG(0x0024,0x0000); delay_ms(50);
LCD_Write_REG(0x0025,0x8000); delay_ms(50);
LCD_Write_REG(0x004f,0);
LCD_Write_REG(0x004e,0);
}
}

void LCD_EnterDataMode()
{
CS_OFF; /* CS\ */
GPIO_Write(GPIOE,0x0022);
WR_OFF; /* WR\ */
WR_ON; /* WR/ */

RS_ON; /* RS/ */
CS_ON; /* CS\ */
}

int main(void)
{
PORT_DATA_init(out);
RS_ON;
CS_ON;
RD_ON;
WR_ON;

RESET_ON;
delay_ms(10);
RESET_OFF;
delay_ms(10);
RESET_ON;

LCD_READ_index();

lcd_init();

LCD_EnterDataMode();

while(1)
{

}
}

_________________
Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 67


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y