- Лоботрясы

Поиск
Перейти к контенту

Главное меню:

Библиотеки для STM32

Читать в Яндекс.Подписках



     Библиотека дисплея LPH8731-3C для STM32
Просмотров: 377
     Продолжаю потихоньку переводить свои библиотеки под STM32. На этот раз переделал свою старую и проверенную библиотеку для дисплея LPH8731-3C  от телефонов Siemens под ядра Cortex-M0, Cortex-M3 и Cortex-M4. Повторяться с картинкой схемы подключения и функционалом библиотеки лишний раз не буду, лучше посмотрите первоисточник (тут совсем недалеко и несложно :-) Изменения коснулись только инициализации портов ввода/вывода (GPIO), добавления функций выдержки времени (для надёжной инициализации дисплея) плюс парочка нюансов, характерных для STM32. Правда, в этой версии библиотеки доступна только программная реализация интерфейса SPI (как разберусь с аппаратной и будет кусочек времени – добавлю и её!). Да, и еще: для вывода строк оставил только функции LCD_Puts() и LCD_Puts_Shadow, которые выводят строковые литералы, расположенные во Flash-памяти микроконтроллера (т.е. отмеченные модификатором const, но ничто не мешает использовать эти функции для вывода данных, расположенных в ram)! 
     Предлагаемая библиотека требует для работы обязательного подключения CooCox-овских библиотек GPIO и RCC (правда, вторая подключится автоматически при выборе первой).
     Библиотека представлена в виде одного файла - LPH8731-3C.h.
     В самом начале библиотеки есть такие настройки: 
#define CORTEX_M     0 //0 для Cortex-M0, 3 для Cortex-M3 и 4 для Cortex-M4 – выбираем тип нашего микроконтроллера
#define GPIOSPEED          GPIO_Speed_10MHz /* Для STM32F0xx    GPIO_Speed_2MHz
                                                                          и STM32F10x:   GPIO_Speed_10MHz
                                                                                                GPIO_Speed_50MHz
                                                                       для STM32F40x:   GPIO_Speed_2MHz
                                                                                                GPIO_Speed_25MHz
                                                                                                GPIO_Speed_50MHz
                                                                   */
 
#define SYSCLK      48 // Необходимо для работы функций delay_us() и delay_ms() - это значение можно найти в файле system_stm32fxxx.c
//#define _8_BIT_COLOR //Если закомментировано - 12-ти битный цвет
#define _GEOMETRICAL //Использование функций вывода геометрических фигур
 
//========================================================================
// Назначение выводов порта – Здесь выбираем порт и к каким конкретно выводам наш дисплей будет подключён
//========================================================================
#define LCD_PORT    GPIOA // GPIOA, GPIOB, GPIOC...
 
#if CORTEX_M==0
#define RCC_LCD_PORT    RCC_AHBPeriph_GPIOA // RCC_AHBPeriph_GPIOB, RCC_AHBPeriph_GPIOC... - включение тактирования
#elif CORTEX_M==3
#define RCC_LCD_PORT    RCC_APB2Periph_GPIOA //RCC_APB2Periph_GPIOB, RCC_APB2Periph_GPIOC... 
#elif CORTEX_M==4
#define RCC_LCD_PORT   RCC_AHB1Periph_GPIOA  // RCC_AHB1Periph_GPIOB, RCC_AHB1Periph_GPIOC...
#endif
 
#define LCD_CS         GPIO_Pin_0   //Выбор чипа
#define LCD_RESET   GPIO_Pin_1   //Сброс
#define LCD_RS        GPIO_Pin_2   //CD - тип передаваемых данных
#define LCD_CLK       GPIO_Pin_3   //Синхронизация
#define LCD_DATA    GPIO_Pin_4   //Данные 
 
     Работа библиотеки проверена на микроконтроллерах STM32F050F4P6 (он же STM32F031F4P6 – Cortex-M0), STM32F103C8T6 (Cortex-M3) и STM32F407VGT6 (Cortex-M4), и как видно на фото, полёт нормальный :-)
     Скачать:

Опубликовано 15.02.2015
© Igoryosha, 2015
 
 
Назад к содержимому | Назад к главному меню