Меню сайта
Календарь
|
STM32F4 DISCOVERY ,LCD ST7920 & u8glib
Знакомство с STM32 я начал с платы STM32L-DISСOVERY,купил ее для знакомства с семейством.Но вскоре обнаружил для себя некоторые недостатки.Например почему не установлен внешний кварц ? не установлен отсек для батарейки,хотя место есть...Нет, я конечно могу припаять сам,но зачем например начинающему это делать?Да и LCD на плате отнимал много ног,а хотелось его оставить.Решено было использовать плату для другого проекта. Короче ,это я к тому ,что купил себе плату STM32F4 DISCOVERY.Первые впечетления очень положительные,куча примеров,на "борту" тоже все довольно солидно.Особенно заинтересовал аудиоЦАП.Да и количество пинов - есть куда розвиваться. Итак F4,с чего-же начать.Под рукой был LCD st7920 от AVR-ских проектов.Решено было использовать его.К моему удивлению, в интернете не особо много информации по этому поводу.Достойными внимания были два источника : www.coocox.org , radiokot.ru/forum .Обе библиотеки я портировал на STM32F4 .На СоСохе библиотека поддерживает встроенные символы ( 4 строки по 16 символов ) ,ну и иероглыфы.Минимальная графика.На РадиоКоте библиотека "поярче" : свой шрифт ( 8 строк ),побольше чем в предыдущей библиотеке функций .Но все-же, хотелось такого функционала как в библиотеке u8glib (https://code.google.com/p/u8glib/ ),c которой я имел возможность познакомится на AVR-ках. И тут случайно наткнулся в сети на материал http://blog.bastelhalde.de/?p=759#comment-1567 .Человек портировал STM32F101CBT6 на дисплей SSD1306 под библиотекой u8glib .Взяв за основу эту информацию, решил и я "прикрутить" дисплей st7920 к плате stm32f4 discovery. Следуя рекомендациям ,по выше приведенной ссылке ,создал два новых файла u8g_arm.c и u8g_arm.h . /* u8g_arm.h */ #ifndef _U8G_ARM_H #include "u8g.h"
//************************************************************************* uint8_t u8g_com_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); #endif
/* u8g_arm.c */ По шаблону отсюда - http://blog.bastelhalde.de/?p=759#comment-1567 ,сделал для stm32f4 - SPI1. uint8_t u8g_com_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) /* main.c */ Функция инициализации LCD : u8g_InitComFn(&u8g, &u8g_dev_st7920_128x64_hw_spi, u8g_com_hw_spi_fn); Тестовый поект для Keil - http://radiomanoff.at.ua/load/stm32f4_u8glib_st7920/1-1-0-25 |
Архив записей
Друзья сайта
Статистика
Онлайн всього: 1 Гостей: 1 Користувачів: 0 |