为什么要偏移请参考:
https://blog.youkuaiyun.com/qq153471503/article/details/111603813
在正点原子STM32F4开发板中使用A6来控制LCD的RS,当A6 = 0时是写命令,当A6 = 1时是写数据,所以最简单的方法就是让A6 = 1,其他的为0,所以得到0100 0000,此时由于内部向右偏移一位,要A6为0,则实际的地址为1000 0000,也就是0x80,因为数据是16位所以地址减去2为0111 1110也就是0x7E(加2变成1000 0010无法改变A6的电平),这样就可以理解他们自己定义的地址为什么是|0x0000007E:
#define LCD_BASE ((u32)(0x6C000000 | 0x0000007E))
#define LCD ((LCD_TypeDef *) LCD_BASE)