Четверг, 28.11.2024, 04:06
Вы вошли как Гость | Группа "Гости"Приветствую Вас Гость | RSS
Главная | STM32 Nokia 1110 LCD графическая библиотека - Форум | Мой профиль | Регистрация | Выход | Вход
Обитель RC-инженера
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ВитГо  
STM32 Nokia 1110 LCD графическая библиотека
SergiДата: Суббота, 31.12.2016, 20:58 | Сообщение # 1
Подполковник
Группа: Проверенные
Сообщений: 540
Репутация: 55
Статус: Offline
Написал графическую библиотеку для STM32F030 и дисплея Нокия.
Работатет с 1110,1112,1202 и прочими с 9битным интерфейсом.
Немного кривовата, но я же не программист.
Вот видео работы
https://www.youtube.com/watch?v=4BIfsrSmDO8
Для отображения необходимо вызвать подпрограмму send_lbuf() вручную или вставить в прерывание.
Я вставил в SysTick для обновления 10 раз в секунду.
Прикрепления: 1110Graf.h (23.9 Kb)


Сообщение отредактировал Sergi - Воскресенье, 01.01.2017, 07:12
 
SergiДата: Суббота, 31.12.2016, 21:04 | Сообщение # 2
Подполковник
Группа: Проверенные
Сообщений: 540
Репутация: 55
Статус: Offline
Вот пример из видео
C моей тактовой 48 МГц буфер выталкивается за 0.7 мСек
Да! И всех с Новым Годом!!!!!!!!!!!!!!!
Прикрепления: 1110graf.c (1.2 Kb)


Сообщение отредактировал Sergi - Воскресенье, 01.01.2017, 07:07
 
pet_pupkinДата: Среда, 15.11.2017, 19:04 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 4
Репутация: 0
Статус: Offline
Здравствуйте , хотелось подключить вашу библиотеку для STM32F072 discovery,но вот не нашел в коде подключение выводов дисплея , clk к порту а _5 ,sda a_7 ,а выводы cs ? и rst ?
Я только учусь Си, до этого только асм на пиках
 
SergiДата: Четверг, 16.11.2017, 09:11 | Сообщение # 4
Подполковник
Группа: Проверенные
Сообщений: 540
Репутация: 55
Статус: Offline
rst lcd я подключаю к rst mcu. Так-же можно подключить к +питания дисплея через подтягивающий резистор (обычно 10к).
Если на выбраном SPI подключен только дисплей - вывод CS нужно подключить на землю, иначе подключать на отдельный вывод мк для управления несколькими ведомыми.Активный уровень - низкий.
 
pet_pupkinДата: Пятница, 17.11.2017, 16:57 | Сообщение # 5
Рядовой
Группа: Проверенные
Сообщений: 4
Репутация: 0
Статус: Offline
Спасибо ,пробую.
 
pet_pupkinДата: Суббота, 25.11.2017, 22:37 | Сообщение # 6
Рядовой
Группа: Проверенные
Сообщений: 4
Репутация: 0
Статус: Offline
Не хочет код работать у меня,делал в Keil 5 и CubeMX,компилится без ошибок но порт spi не шевелится, смотрел осциллографом на выводах дисплея низкие уровни.Может я что то упустил по незнанию.Тактирование AHB настроить наверное как то правильно надо.
Если у вас будет время и желание ,посмотрите пожалуйста где у меня не так.
Проект из Keil v5, доска STM32F072 DISCOVERY , я в вашем коде только сигнал MOSI перекинул под свой проц , на шину PB_5.
Прикрепления: ucoz.rar (136.2 Kb)
 
SergiДата: Воскресенье, 26.11.2017, 20:13 | Сообщение # 7
Подполковник
Группа: Проверенные
Сообщений: 540
Репутация: 55
Статус: Offline
Попробуйте изменить строку
GPIOB->AFR[0] &=~ 0xF0000000; //SPI_MOSI alt func
на
GPIOB->AFR[0] &=~ 0x00F00000; //SPI_MOSI alt func
и раскомментировать эту
//SPI1->CR1 |= SPI_CR1_BR_0 ; //Pre Div SPI for slow LCD
дисплей может не успевать
 
pet_pupkinДата: Понедельник, 27.11.2017, 01:17 | Сообщение # 8
Рядовой
Группа: Проверенные
Сообщений: 4
Репутация: 0
Статус: Offline
Запустил ,не прошло и месяца biggrin ,ваша библиотека оказалась рабочая, в отличии всего что валяется в инете по поводу
работы дисплеев по 9 битному spi .Исходников 15 пытался переделать,не работают хоть тресни.
Немножко подправил и все пошло.

Прикрепления: 2112256.png (51.2 Kb) · 1697582.jpg (71.1 Kb)
 
SergiДата: Четверг, 16.08.2018, 21:07 | Сообщение # 9
Подполковник
Группа: Проверенные
Сообщений: 540
Репутация: 55
Статус: Offline
Понадобилось разгрузить процессор. Новая версия библиотеки с применением DMA для передачи данных в дисплей.
Прикрепления: 2204977.h (24.4 Kb)


Сообщение отредактировал Sergi - Четверг, 16.08.2018, 21:08
 
uwrteyДата: Пятница, 17.08.2018, 07:18 | Сообщение # 10
Генерал-майор
Группа: Администраторы
Сообщений: 3300
Репутация: 11
Статус: Offline
v

не успеваю за своими мыслями......
 
SergiДата: Пятница, 17.08.2018, 09:01 | Сообщение # 11
Подполковник
Группа: Проверенные
Сообщений: 540
Репутация: 55
Статус: Offline
Немного пришлось исправить для того чтобы можно было заполнять буфер из любого места программы без задержек.
В main добавляем функцию вывода (запуск по прерыванию от таймера или вручную) типа такой:
void ProcLcd(void)
{
if (TransferComlite) lbuf_clear(),TransferComlite = 0; //очищаем буфер для новых данных
if (GetTimer(LcdTimer) >= LcdRepeat) //если выводим через таймер (у меня через 0,1сек)
{
ResetTimer(LcdTimer);

//Здесь что-то выводим например через PrtStrToBuf(хххх)

send_lbuf();
};
#ifdef DMA_EN
if (DMA1->ISR & DMA_ISR_TCIF3) DMA1->IFCR = 0xf00,TransferComlite = 1; //проверяем окончание передачи
#endif
};

Заполнять буфер можно из любого места вне функции ProcLcd(). В main ProcLcd() желательно поместить внутри while(1) повыше
Прикрепления: 1110GrafDMA.h (24.4 Kb)


Сообщение отредактировал Sergi - Пятница, 17.08.2018, 09:05
 
  • Страница 1 из 1
  • 1
Поиск:


Copyright MyCorp © 2024
Сделать бесплатный сайт с uCoz