0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 574
1

STM32L и LCD от NOKIA 1616

03.03.2012, 16:14. Показов 8600. Ответов 2
Метки нет (Все метки)

3-е суток уже пишу программу и не могу понять где собака порылась...
Код
#include "stm32l1xx.h"
#include "stm32l1xx_gpio.h"

#define GPIO_HIGH_LCD(b) GPIOB -> BSRRL = (1<<b)   //aunoaaeaiea aeoa
#define GPIO_LOW_LCD(b) GPIOB -> BSRRH = (1<<b)      //i?enoea aeoa

#define CS         13
#define SCL         12
#define SDA         11
#define RST_LCD      10

#define DATA_LCD   1
#define COMMAND_LCD   0

void SPI_LCD (uint16_t DC,uint16_t data);
void InitOtt (void);
void delay_lcd(uint64_t delay);

/********************************************************************/
/********************************************************************/
/********************************************************************/
int main (void)
{
uint16_t i,j;

InitOtt();

GPIO_LOW_LCD(RST_LCD);
delay_lcd(50000);
GPIO_HIGH_LCD(RST_LCD);
delay_lcd(50000);

//______Software risit
SPI_LCD   (COMMAND_LCD,0x0001);
delay_lcd(500);
//______Sleep out
SPI_LCD (COMMAND_LCD,0x0011);
delay_lcd(500);
//______Normal Dysplay Mode On
SPI_LCD (COMMAND_LCD,0x0013);
delay_lcd(500);
//______Dysplay Inversion off
SPI_LCD (COMMAND_LCD,0x0020);
delay_lcd(500);
//______Idle Mode Off
SPI_LCD (COMMAND_LCD,0x0038);
delay_lcd(500);
//______RGB syknal control
SPI_LCD (COMMAND_LCD,0x00B0);
SPI_LCD (DATA_LCD,0x0010);
delay_lcd(500);
//______Memory Data Access Control
SPI_LCD (COMMAND_LCD,0x0036);
SPI_LCD (DATA_LCD,0x00F8);            //BGR, BOTTOM->TOP
delay_lcd(500);
//______Color mode (0xXXX4 = 12, 0xXXX5 = 16, 0xXXX6 = 18 bit interfosi)
SPI_LCD (COMMAND_LCD,0x003A);
SPI_LCD (DATA_LCD,0x0105);
delay_lcd(500);
//______Dysplay ON
SPI_LCD (COMMAND_LCD,0x0029);

SPI_LCD (COMMAND_LCD,0x002C);         //Memory wright

for (i=0;i<0x007F;i++)
{
for (j=0;j<0x009F;j++)
{
SPI_LCD (DATA_LCD, 0x0057);
SPI_LCD (DATA_LCD, 0x0070);
}
}

while (1)
{
for (i=0;i<0x007F;i++)
{
for (j=0;j<0x009F;j++)
{
SPI_LCD (DATA_LCD, 0x0057);
SPI_LCD (DATA_LCD, 0x0070);
}
}
}
}
/********************************************************************/
/********************************************************************/
/********************************************************************/

void InitOtt (void)
{
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;      // Iiaaee oaeou ia ii?o. Aac yoiai ?aaioaou ia aoaao.
// ?ineea aeeu STM32 =))) A a neioeyoi?a aac yoiai ?aaioaao ia o?a
GPIOB->MODER |= GPIO_MODER_MODER7_0;
GPIOB->OTYPER &= ~GPIO_OTYPER_OT_7;
GPIOB->PUPDR &= ~GPIO_PUPDR_PUPDR7;
GPIOB->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR7;
GPIOB->MODER |= GPIO_MODER_MODER6_0;
GPIOB->OTYPER &= ~GPIO_OTYPER_OT_6;
GPIOB->PUPDR &= ~GPIO_PUPDR_PUPDR6;
GPIOB->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR6;

return;
}

void SPI_LCD (uint16_t DC,uint16_t data)
{
uint16_t   CountSPI,var;                  //n?ao?ee SPI
var=data;

//auai? e?enoaea
GPIO_LOW_LCD(CS);                        //CS a iieu

//auai? ia?aaa?e eiiiaiau eee aaiiuo
GPIO_LOW_LCD(SCL);                        //SCL = "L"
if (DC) GPIO_HIGH_LCD(SDA);               //anee ia?aaaai aaiiua, oi 9-e aeo a "1"
else   GPIO_LOW_LCD(SDA);                  //anee eiiiaiaa, oi a "0"
GPIO_HIGH_LCD(SCL);                     //SCL = "H"

//ia?aaaai aaiiiua D7-D0
for (CountSPI=8; CountSPI!=0;CountSPI--)
{
GPIO_LOW_LCD(SCL);
if ((var>>(CountSPI-1)&0x01)==1)   GPIO_HIGH_LCD(SDA);
else   GPIO_LOW_LCD(SDA);
GPIO_HIGH_LCD(SCL);
}

//auee??aai auai? e?enoaea
GPIO_HIGH_LCD(CS);

//3 ionouo oaeoa
GPIO_LOW_LCD(SCL);
GPIO_HIGH_LCD(SCL);
GPIO_LOW_LCD(SCL);
GPIO_HIGH_LCD(SCL);
GPIO_LOW_LCD(SCL);
GPIO_HIGH_LCD(SCL);
}

void delay_lcd(uint64_t delay)
{
uint64_t j_delay,el,lp;

for(j_delay=0;j_delay<=delay;j_delay++)
{
el++;
lp=el;
lp++;
--lp;
}
}
С СТМ только начал знакомиться, а дисплей вообще только купил. По примеру http://we.iosyitistromyss.ru/l... c1343.html не могу ничего понять.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2012, 16:14
Ответы с готовыми решениями:

LCD в STM32L-Discovery
Не получается сгенерировать символы на ЖК-дисплее в STM32T-Dyscovery. Сначала был косяк в том что,...

STM32L-discowery + IAR + DOGM162 LCD (HD44780 совместимый)
Добрый день уважаемые и с наступившим НГ! Осваиваю STM32.Начал с изучения GPIO. До STM32 активно...

STM32L Discovery и дисплей от Nokia 1202/1203/1280
Здравствуйте! Проблема с дисплеем от Nokyo 1202. Уже неделю борюсь с этим монохромным дьяволом!...

lcd Nokia 1202
Кто-нибудь работал с дисплеем от сотового телефона nokyo 1202? С ним общаются через 9-bit SPI. Я...

2
0 / 0 / 0
Регистрация: 07.04.2011
Сообщений: 663
04.03.2012, 00:23 2
http://habrahabr.ru/btogs/controllers/139384/
0
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 574
04.03.2012, 10:42 3
Загвоздка была в том, что порты не настроил )
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2012, 10:42

LCD Nokia 5250
Добрый день! Попал в руки дисплей от Nokyo 5250. Но вот какой контроллер внутри стоит никак найти...

LCD Nokia 5110
Добрый день. Питаюсь значит подключить LCD дисплей к МК, но у вы везде примеры на...

LCD от Nokia 1110i
Кто-нибудь знает какой контроллер у данного дисплея? Или может есть ссылка на даташит? И знаете...

STM32F4 + Nokia 6300 lcd
Уважаемые форумчане, помогите понять одну вещь. Подключил к STM32F4Dyscovery дисплей от Nokyo 6300....

stm32f103 nokia 1200 lcd
Поделитесь проектом для вывода изображения на вышеуказанный дисплей или аналог на контроллере...

подключение LCD Nokia 7200 к avr
Здравствуйте! Подскажите, как подключить внутренний 96x64 b/w или внешний 128x128@65k дисплей от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru