无法更改LCD\U CR寄存器的值

无法更改LCD\U CR寄存器的值,c,arm,stm32,lcd,stm32cubemx,C,Arm,Stm32,Lcd,Stm32cubemx,我目前正在玩L152C发现板,并尝试制作简单的时钟,将RTC内置到STM32和板载玻璃LCD中,LCD HAL库通过CubeMX配置。 但我目前面临着一个无法解决的问题: CubeMX没有在LCD\u CR寄存器中启用段mux的选项。我想启用它,因为它将使段映射更容易 所以我想,好吧,我将进行直接寄存器操作,启用mux(LCD\u CR中的位7)。 我使用命令LCD->CR |=LCD_CR_MUX_SEG但即使在执行该命令之后,MUX_SEG位仍然是零。(我在调试会话中使用命令步进和SFRs内

我目前正在玩L152C发现板,并尝试制作简单的时钟,将RTC内置到STM32和板载玻璃LCD中,LCD HAL库通过CubeMX配置。 但我目前面临着一个无法解决的问题: CubeMX没有在
LCD\u CR
寄存器中启用段mux的选项。我想启用它,因为它将使段映射更容易

所以我想,好吧,我将进行直接寄存器操作,启用mux(LCD\u CR中的位7)。 我使用命令
LCD->CR |=LCD_CR_MUX_SEG
但即使在执行该命令之后,
MUX_SEG
位仍然是。(我在调试会话中使用命令步进和SFRs内存映射进行了检查) 我做错什么了吗?或者是否有其他方法可以更改CubeMX配置但没有此设置选项的图形实现的初始化参数

应用程序正在使用FreeRTOS,我执行了
LCD->CR |=LCD_CR_MUX_SEG
HAL\u LCD\u Init(&hlcd)之后因此我确认LCD外围时钟正在运行(并且段正在更新)

我录制了一段短视频,显示了这个问题: 老实说,我不擅长直接的寄存器操作,所以我可能做错了什么

任何帮助都将不胜感激 正如@KIIV所说:


RM0038液晶显示控制器(LCD)注:当LCD启用时,VSEL、MUX_SEG、偏置和占空比位受写保护(LCD_SR中的ENS位为1)


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

RM0038液晶显示控制器(LCD)注意:当LCD启用时,VSEL、MUX_SEG、偏置和占空比位具有写保护(LCD_SR中的ENS位为1)。哦,我错过了这一点。谢谢