HAL_LCD_Write(&hlcd, LCD_RAM_REGISTER1, 0xfffbf, (uint32_t)((digit[0]& 0x08) << 3));/* 1D X X X */ HAL_LCD_Write(&hlcd, LCD_RAM_REGISTER2, 0xfffeffff, (uint32_t)((digit[1]& 0x08) << 17));/* 1E X X */ 我再同一个显示位置,用到的SEG线,既有COM0的LCD_RAM_REGISTER1 (S32到S47位)中S38像上面写对吗?因为超出了32位了,不知道怎么移位,是直接以为多出32的位数吗 |
寄存器是32位的,你用两个uint32就可以了 |
两种方法,两个不同寄存器用两个不同的变量来分开控制。或者定义一个64位的数,uint64_t,写入数据时,写高位时,可以用>>32位实现。 |
这个是显存。我建议在显存以外设置两个变量来存放修改后的显示数据,完成修改后关中断一次性写入显存里。 |
分成2个32位的写就行了,官方有例程和库的了,参考改改就行了 |