为什么说不能90度旋转呢,只能解释为没有仔细读手册,或者说是读了没有理解。官方手册写得很明确,Hardware rotation of 0, 90, 180, 270 degree
光说不给答案不厚道,以下是我用的横竖屏旋转的代码,可以参考一下。
#define CMD_SetCoordinateX 0x2A //设置X坐标 set column address
#define CMD_SetCoordinateY 0x2B //设置Y坐标
#define CMD_WriteGram 0x2C //写GRAM(图像内存)
void _BSP_LCD_SetParam(void)
{
uint8_t dirSet = 0x00;
LCDParam.writeGramCmd = CMD_WriteGram; //写GRAM
if(LCD_SCAN_DIR % 2 != 0)
{ //竖屏
LCDParam.setXPositionCmd = CMD_SetCoordinateY; //设置X坐标
LCDParam.setYPositionCmd = CMD_SetCoordinateX; //设置Y坐标
LCDParam.xdirectionSize = LCD_SHORTSIDE;
LCDParam.ydirectionSize = LCD_LONGSIDE;
if(LCD_SCAN_DIR == 1) dirSet = 0x21;
if(LCD_SCAN_DIR == 3) dirSet = 0x22;
}else{ //横屏
LCDParam.setXPositionCmd = CMD_SetCoordinateX; //设置X坐标
LCDParam.setYPositionCmd = CMD_SetCoordinateY; //设置Y坐标
LCDParam.xdirectionSize = LCD_LONGSIDE;
LCDParam.ydirectionSize = LCD_SHORTSIDE;
if(LCD_SCAN_DIR == 0) dirSet = 0x00;
if(LCD_SCAN_DIR == 2) dirSet = 0x03;
}
_BSP_LCD_WriteValue(CMD_GramDirection, dirSet); //控制存储器的读写方向
_BSP_LCD_SetWindows(0, 0, LCDParam.xdirectionSize, LCDParam.ydirectionSize);
}
|