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