Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Технологии программирования > Железо. Написание драйверов
Перезагрузить страницу Проблема с выводом информации на ЖКИ дисплей
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
_Егор _Егор вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 10.08.2015
По умолчанию Проблема с выводом информации на ЖКИ дисплей - 10.08.2015, 15:07

У меня возникла такая проблема. Можете подсказать?
Символы по адресам xxxx xx00 — xxxx xx11 воспринимаются как xxxx xx01
Что это может быть?

Мой дисплей WEH001602AGPP5N00001
Плата stm32f103

Ссылку на весь проект не даёт кинуть но вот тут часть кода

cpp Код:
void InitSystemConfiguration(void) // инициализация ног портов
{
        /* System Clocks Configuration */
    EnablePortsAndDevices(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC |
                              RCC_APB2Periph_AFIO | RCC_APB2Periph_USART1,
                              RCC_APB1Periph_TIM2, 0);

        /* Enable GPIO clock */
    InitPort(GPIOC, GPIO_Pin_5 | GPIO_Pin_4, GPIO_Speed_10MHz, GPIO_Mode_Out_PP);
    InitPort(GPIOB, GPIO_Pin_0 | GPIO_Pin_2 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11
            | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15, GPIO_Speed_10MHz, GPIO_Mode_Out_PP);

    SystickT();

       /* Displey Configuration */
    InitLED();
}

cpp Код:
void InitLED(void) // Инициализация дисплея
{
    resetEnable(); // Сброс флага E
    resetRW(); // Сброс флага RW
    resetRS(); // Сброс флага RS
        Delay(100);
        FunctionSet(EIGHT_BITS, TWO_LINES, CHARACTER_5x8, ENGLISH_RUSSIAN_CHARACTER_FONT_TABLE); // Задание режима работы дисплея
    WaitBusyFlag(); // Ожидание завершения команды
    DisplayOnOffControl(DISPLAY_OFF, CURSOR_OFF, BLINK_OFF); //Выключение дисплея
    WaitBusyFlag();
    DisplayOnOffControl(DISPLAY_ON, CURSOR_ON, BLINK_OFF); // Включение дисплея
    WaitBusyFlag();
    DisplayClear(); // Очистка дисплея
    WaitBusyFlag();
    EntryModeSet(INCREMENT_BIT, DO_NOT_SHIFT_DISPLAY); // Задание режима работы курсора дисплея
    WaitBusyFlag();
    ReturnHome(); // Возврат курсора в начало строки
    WaitBusyFlag();
}

static  void FunctionSet(data_length length, number_of_display_lines display_lines, character_font_set font_set, font_table_selection font_table)
{
    uint8_t data = 0;
    data = (uint8_t)font_table + ((uint8_t)font_set << 2) + ((uint8_t)display_lines << 3) + ((uint8_t)length << 4) + (1 << 5);
    PushIntoPort(data);
}

static  void DisplayOnOffControl(display_on_off on_off, display_cursor cursor, blink_on_off blink)
{
    uint8_t data = 0;
    data = (uint8_t)blink + ((uint8_t)cursor << 1) + ((uint8_t)on_off << 2) + (1 << 3);
    PushIntoPort(data);
}

 void WaitBusyFlag(void)
{
    resetRS();
    SetDataPortInInputMode();
    setRW();
    setEnable();
    while(isbusy())
    {
        resetEnable();
        Delay(100);
        setEnable();
    }
    setEnable();
    Delay(100);
    resetEnable();
    resetRW();
    SetDataPortInOutputMode();
}
static  void EntryModeSet(increment_decrement_bit inc_dec_bit, shift_entire_display shift_disp)
{
    uint8_t data = 0;
    data = (uint8_t)shift_disp + (((uint8_t)inc_dec_bit) << 1) + (1 << 2);
    PushIntoPort(data);
}

static  void PushIntoPort(uint8_t data)
{
    resetEnable();
    setdata(0);
    Delay(100);
    setEnable();
    setdata(data);
    Delay(100);
    resetEnable();
}

 void WriteData(uint8_t data)
{
    setRS();
    resetRW();
    PushIntoPort(data);
    WaitBusyFlag();
}

Последний раз редактировалось Rius; 11.08.2015 в 19:29 Причина: подсветка кода
Ответить с цитированием
  (#2 (permalink)) Старый
Rius Rius на форуме
Программист
 
Аватар для Rius
 
Сообщений: 7,451
Сказал(а) спасибо: 22
Поблагодарили 944 раз(а) в 928 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 11.08.2015, 19:51

Цитата:
Сообщение от _Егор Посмотреть сообщение
Символы по адресам xxxx xx00 — xxxx xx11 воспринимаются как xxxx xx01
Что это может быть?
Поясните, что вы под этим понимаете?
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Php & Prolog, проблема с выводом кириллицы alinarh PHP 30 27.02.2015 18:12
Проблема с выводом изображения 2ramses Видеосистема 2 14.02.2013 17:38
проблемы с выводом pupilMartyr Haskell 0 26.05.2012 22:13
Проблема с выводом картинки на монитор J_a_R Видеокарты 18 27.09.2011 08:29
Проблема с выводом на печать документа 2008krolik Delphi 7 08.10.2009 15:07
Проблема с выводом разрешения - Matrix XP1709 не поддерживается? Rolmek LINUX 3 05.10.2008 23:40
Проблема с выводом кирилицы в ANSI lonesomeman Вопросы начинающих программистов 6 09.01.2008 20:47
Проблема с выводом в другой фрейм Cut DHTML, JavaScript, VBScript 0 11.07.2006 10:58
Проблема с выводом текстового файла в TEXTAREA Kenny Perl 1 11.05.2006 20:12
Проблема с выводом длинных списков на SWI-прологе. Roman_Pro Prolog 1 14.11.2005 02:44
Помогите ламососу!!! проблема с постраничным выводом!!! russel-shf PHP 4 06.01.2005 20:22
Проблема с выводом скрипта на ПХП Мила PHP 2 20.05.2004 13:41



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов