Например TDA7294

Форум РадиоКот • Просмотр темы - wg12864b-ygh-n#n на STM32F100
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вт дек 16, 2025 01:31:36

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


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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: wg12864b-ygh-n#n на STM32F100
СообщениеДобавлено: Вс апр 14, 2013 18:56:56 
Потрогал лапой паяльник
Аватар пользователя

Карма: 10
Рейтинг сообщений: 29
Зарегистрирован: Сб апр 28, 2012 16:04:14
Сообщений: 394
Рейтинг сообщения: 0
Пытаюсь запустить wg12864b-ygh-n#n на STM32F100
На дисплее ничего не отображается.
Подсветка работает.
При регулировке контраста - ничего не происходит. А должно ли ?
Подключение, соответствие и состояния портов проверил несколько раз.

Контраст подключил вот так:
Изображение

И всё согласно даташиту.
Изображение


Код:
#include "stm32f10x.h" 
#include "mcu_gpio.h"

// Инициализация портов ввода-вывода
void port_init (void) {
 
  RCC->APB2ENR |= RCC_APB2ENR_IOPBEN | RCC_APB2ENR_IOPAEN;     //clock on portB and portA
 
  // --- PB9 ----------
  GPIOB->CRH &= ~GPIO_CRH_CNF9;         
  GPIOB->CRH |= GPIO_CRH_MODE9_1;    
  // --- PB8 ----------
  GPIOB->CRH &= ~GPIO_CRH_CNF8;         
  GPIOB->CRH |= GPIO_CRH_MODE8_1;    
  // --- PB7 ----------
  GPIOB->CRL &= ~GPIO_CRL_CNF7;         
  GPIOB->CRL |= GPIO_CRL_MODE7_1;    
  // --- PB6 ----------
  GPIOB->CRL &= ~GPIO_CRL_CNF6;         
  GPIOB->CRL |= GPIO_CRL_MODE6_1;    
  // --- PB5 ----------
  GPIOB->CRL &= ~GPIO_CRL_CNF5;         
  GPIOB->CRL |= GPIO_CRL_MODE5_1;    
  // --- PB13 ----------
  GPIOB->CRH &= ~GPIO_CRH_CNF13;         
  GPIOB->CRH |= GPIO_CRH_MODE13_1;    
  // --- PB12 ----------
  GPIOB->CRH &= ~GPIO_CRH_CNF12;         
  GPIOB->CRH |= GPIO_CRH_MODE12_1;    
  // --- PA9 ----------
  GPIOA->CRH &= ~GPIO_CRH_CNF9;         
  GPIOA->CRH |= GPIO_CRH_MODE9_1;    
  // --- PA10 ----------
  GPIOA->CRH &= ~GPIO_CRH_CNF10;         
  GPIOA->CRH |= GPIO_CRH_MODE10_1;    
  // --- PA11 ----------
  GPIOA->CRH &= ~GPIO_CRH_CNF11;         
  GPIOA->CRH |= GPIO_CRH_MODE11_1;    
  // --- PA12 ----------
  GPIOA->CRH &= ~GPIO_CRH_CNF12;         
  GPIOA->CRH |= GPIO_CRH_MODE12_1;    
  // --- PA7 ----------
  GPIOA->CRL &= ~GPIO_CRL_CNF7;         
  GPIOA->CRL |= GPIO_CRL_MODE7_1;    
  // --- PA6 ----------
  GPIOA->CRL &= ~GPIO_CRL_CNF6;         
  GPIOA->CRL |= GPIO_CRL_MODE6_1;    
  // --- PA5 ----------
  GPIOA->CRL &= ~GPIO_CRL_CNF5;         
  GPIOA->CRL |= GPIO_CRL_MODE5_1;    
}

// задержка
void delay (long i) {

  while (i) i--;
}


// формирование сигнала на портах

#define LCD_CS1_H     GPIOA->BSRR|=GPIO_BSRR_BS10
#define LCD_CS1_L     GPIOA->BSRR|=GPIO_BSRR_BR10

#define LCD_CS2_H     GPIOA->BSRR|=GPIO_BSRR_BS11
#define LCD_CS2_L     GPIOA->BSRR|=GPIO_BSRR_BR11

#define LCD_RESET_H   GPIOA->BSRR|=GPIO_BSRR_BS12
#define LCD_RESET_L   GPIOA->BSRR|=GPIO_BSRR_BR12

#define LCD_RW_H      GPIOA->BSRR|=GPIO_BSRR_BS7
#define LCD_RW_L      GPIOA->BSRR|=GPIO_BSRR_BR7

#define LCD_DI_H      GPIOA->BSRR|=GPIO_BSRR_BS6
#define LCD_DI_L      GPIOA->BSRR|=GPIO_BSRR_BR6

#define LCD_ENABLE_H  GPIOA->BSRR|=GPIO_BSRR_BS5
#define LCD_ENABLE_L  GPIOA->BSRR|=GPIO_BSRR_BR5


// формирование сигнала на 8-битной шине
void form_byte (int data) {
 
  if ((data & (1<<0)) != 0 ) GPIOB->BSRR|=GPIO_BSRR_BS9; else GPIOB->BSRR|=GPIO_BSRR_BR9; 
  if ((data & (1<<1)) != 0 ) GPIOB->BSRR|=GPIO_BSRR_BS8; else GPIOB->BSRR|=GPIO_BSRR_BR8; 
  if ((data & (1<<2)) != 0 ) GPIOB->BSRR|=GPIO_BSRR_BS7; else GPIOB->BSRR|=GPIO_BSRR_BR7; 
  if ((data & (1<<3)) != 0 ) GPIOB->BSRR|=GPIO_BSRR_BS6; else GPIOB->BSRR|=GPIO_BSRR_BR6; 
  if ((data & (1<<4)) != 0 ) GPIOB->BSRR|=GPIO_BSRR_BS5; else GPIOB->BSRR|=GPIO_BSRR_BR5; 
  if ((data & (1<<5)) != 0 ) GPIOB->BSRR|=GPIO_BSRR_BS13; else GPIOB->BSRR|=GPIO_BSRR_BR13; 
  if ((data & (1<<6)) != 0 ) GPIOB->BSRR|=GPIO_BSRR_BS12; else GPIOB->BSRR|=GPIO_BSRR_BR12; 
  if ((data & (1<<7)) != 0 ) GPIOA->BSRR|=GPIO_BSRR_BS9; else GPIOA->BSRR|=GPIO_BSRR_BR9; 
}

// пишем команду в выбранный контроллер
void lcd_command (int cmd) {         

      delay (1000); 
  LCD_CS1_L;      // выбор чипа 1
      delay (1000); 
  LCD_DI_L;      // команда
      delay (1000); 
  LCD_RW_L;      // запись
      delay (1000); 

  form_byte (cmd);   // Команду на шину данных

      delay (10000);      
  LCD_ENABLE_H;      
      delay (10000);   
  LCD_ENABLE_L;
      delay (10000);         
 
  LCD_CS1_L;           // чип 1 - не активен   
}

// пишем данные в выбранный контроллер
void lcd_send (int cmd) {         

      delay (1000); 
  LCD_CS1_L;      // выбор чипа 1
      delay (1000); 
  LCD_DI_H;      // команда
      delay (1000); 
  LCD_RW_L;      // запись
      delay (1000); 

  form_byte (cmd);   // Команду на шину данных

      delay (10000);      
  LCD_ENABLE_H;      
      delay (10000);   
  LCD_ENABLE_L;
      delay (10000);         
 
  LCD_CS1_L;           // чип 1 - не активен   
}

// инициализация дисплея
void lcd_init (void) {
 
  lcd_command (0x3F); // включить
  lcd_command (0x40); // aдрес Y=0
  lcd_command (0xB8); // cтраница Х=0
  lcd_command (0xC0); // cкролл = 0 (т.е. с самого верха)
}

// выполнение
int main (void) {
 
  port_init ();  // инициализация портов ввода-вывода
   
  LCD_RESET_L;   // Сброс
  LCD_RESET_H;   // Сброс - не активен
  LCD_ENABLE_L;  // Сигнал передачи данных - не активен
  LCD_CS1_H;    // Чип 1 - не активен   
  LCD_CS2_H;    // Чип 2 - не активен      

  lcd_init ();   // комманды инициалицзации дисплея

  lcd_send (189);
 
  while (1)
  {
  }
}

_________________
Критикуешь - предлагай. Предлагаешь - делай. Делаешь - отвечай.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: wg12864b-ygh-n#n на STM32F100
СообщениеДобавлено: Вс апр 14, 2013 20:52:04 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 89
Зарегистрирован: Пт мар 13, 2009 10:55:57
Сообщений: 329
Откуда: Калининград
Рейтинг сообщения: 0
На 18 ноге есть отрицательное напряжение?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: wg12864b-ygh-n#n на STM32F100
СообщениеДобавлено: Вс апр 14, 2013 21:03:40 
Потрогал лапой паяльник
Аватар пользователя

Карма: 10
Рейтинг сообщений: 29
Зарегистрирован: Сб апр 28, 2012 16:04:14
Сообщений: 394
Рейтинг сообщения: 0
Спасибо, заработало.
Что-то я тупанул малость.

_________________
Критикуешь - предлагай. Предлагаешь - делай. Делаешь - отвечай.


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

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


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

Сейчас этот форум просматривают: kolobok0 и гости: 15


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

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


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