#c #arm #stm32 #lcd #stm32cubemx
#c #arm #stm32 #жк-дисплей #stm32cubemx
Вопрос:
В настоящее время я играю с L152C Discovery board и пытаюсь создать простые часы, которые будут использовать встроенный RTC в STM32 и встроенный стеклянный ЖК-дисплей с библиотекой LCD HAL, настроенной через CubeMX. Но в настоящее время я сталкиваюсь с проблемой, с которой я не могу разобраться: в CubeMX нет возможности включить мультиплексирование сегментов в LCD_CR
регистре. Я хотел бы включить его, потому что это упростило бы сопоставление сегментов.
Итак, я подумал, хорошо, я сделаю прямое манипулирование регистром, включив мультиплексирование (бит 7 в LCD_CR
). Я использовал команду LCD->CR |= LCD_CR_MUX_SEG;
, но даже после выполнения команды MUX_SEG
бит по-прежнему равен нулю. (Я проверил в сеансе отладки с пошаговым выполнением команд и картой памяти SFR) Есть ли что-то, что я делаю неправильно? Или есть другой способ изменить параметры инициализации, которые настроены в CubeMX, но не имеют графической реализации этой опции настроек?
Приложение использует FreeRTOS, и я выполнил LCD->CR |= LCD_CR_MUX_SEG;
после HAL_LCD_Init(amp;hlcd);
этого, поэтому я предполагаю, что периферийные часы ЖК-дисплея работают (и сегменты обновляются).
Я записал короткое видео, показывающее эту проблему: https://youtu.be/0X6Zu5EPudU Честно говоря, я не очень разбираюсь в прямых манипуляциях с регистрами, так что, вероятно, я делаю что-то не так.
Любая помощь будет оценена!😇
Комментарии:
1. Контроллер жидкокристаллического дисплея RM0038 (LCD) Примечание: Биты VSEL, MUX_SEG, BIAS и DUTY защищены от записи, когда ЖК-дисплей включен (бит ENS в LCD_SR равен 1).
2. О, я пропустил это. Спасибо.
Ответ №1:
Как сказал @KIIV:
Контроллер жидкокристаллического дисплея RM0038 (LCD) Примечание: Биты VSEL, MUX_SEG, BIAS и DUTY защищены от записи, когда ЖК-дисплей включен (бит ENS в LCD_SR равен 1).
ЖК-дисплей должен быть отключен при внесении изменений в вышеуказанные регистры.