0

我目前正在使用 L152C Discovery board 并尝试制作简单的时钟,该时钟将使用 STM32 内置的 RTC 和板载 Glass LCD 以及通过CubeMX配置的 LCD HAL 库。但我目前面临一个我无法理解的问题: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(&hlcd);所以我认为 LCD 外围时钟正在运行(并且段正在更新)。

我录制了一个显示此问题的短视频: https ://youtu.be/0X6Zu5EPudU 老实说,我不擅长直接操作寄存器,所以我可能做错了什么。

任何帮助,将不胜感激!

4

1 回答 1

0

正如@KIIV 所说:

RM0038 液晶显示控制器 (LCD) 注意:当 LCD 使能时,VSEL、MUX_SEG、BIAS 和 DUTY 位被写保护(LCD_SR 中的 ENS 位为 1)。

更改上述寄存器时必须禁用 LCD。

于 2021-04-29T21:40:10.660 回答