我目前正在玩L152C Discovery板,并试图制作一个简单的时钟,该时钟将使用RTC内置到STM32和板载玻璃LCD中,通过CubeMX配置LCD HAL库。但我目前面临着一个无法解决的问题:CubeMX没有在LCD_CR
寄存器中启用段mux的选项。我想启用它,因为它会使分段映射更容易。
所以我想,好吧,我会直接进行寄存器操作,启用mux(LCD_CR
中的第7位)。我使用了命令LCD->CR |= LCD_CR_MUX_SEG;
,但即使在执行该命令后,MUX_SEG
位仍然为零。(我在调试会话中检查了命令步进和SFR内存映射)是不是我做错了什么?或者有没有其他方法可以更改CubeMX配置的初始化参数,但没有该设置选项的图形实现?
应用程序使用FreeRTOS,我在HAL_LCD_Init(&hlcd);
之后执行LCD->CR |= LCD_CR_MUX_SEG;
,所以我认为LCD外围时钟正在运行(并且段正在更新)。
我录制了一个显示此问题的短视频:https://youtu.be/0X6Zu5EPudU老实说,我不擅长直接操作寄存器,所以我可能做错了什么。
任何帮助都将不胜感激!
正如@KIIV所说:
RM0038液晶显示控制器(LCD)注意:当LCD启用时,VSEL、MUX_SEG、BIAS和DUTY位受到写保护(LCD_SR中的ENS位为1)。
对上述寄存器进行更改时,必须禁用LCD。