LCD_SPI_TX(cmd);
LCD_SPI_END();
}
static void LCD12864_Dat(uint8 data)
{
LCD_SPI_BEGIN();
LCD_DO_WRITE();
LCD_SPI_TX(data);
LCD_SPI_END();
}
void LCD12864_Init(void)
{
PERCFG |= 0x02; // 设置UART alt2 为 SPI
// 配置引脚为SPI功能
HAL_CONFIG_IO_PERIPHERAL(HAL_LCD_CLK_PORT, HAL_LCD_CLK_PIN);
HAL_CONFIG_IO_PERIPHERAL(HAL_LCD_MOSI_PORT, HAL_LCD_MOSI_PIN);
/* Configure SPI */
U1UCR = 0x80; // 清除原来的数据
U1CSR = 0x00; // SPI 主机模式
// 高位在前,第一个上升沿发送数据,波特率为2M
U1GCR = HAL_SPI_TRANSFER_MSB_FIRST | HAL_SPI_CLOCK_PHA_0 | HAL_SPI_CLOCK_POL_LO | 0x0F;
U1BAUD = 0xFF;
// CS RS 配置为输出
HAL_CONFIG_IO_OUTPUT(HAL_LCD_RS_PORT, HAL_LCD_RS_PIN, 1);
HAL_CONFIG_IO_OUTPUT(HAL_LCD_CS_PORT, HAL_LCD_CS_PIN, 1);
SoftWaitUs(15000); // 15 ms
LCD12864_Cmd(LCD_CMD_SOFT_RESET); //软复位
SoftWaitUs(15000); // 15 ms
LCD12864_Cmd(LCD_CMD_POWER_ONE); //升压步聚1
SoftWaitUs(15); // 15 us
LCD12864_Cmd(LCD_CMD_POWER_TWO); //升压步聚2
SoftWaitUs(15); // 15 us
LCD12864_Cmd(LCD_CMD_POWER_THREE); //升压步聚3
SoftWaitUs(150); // 15 us
LCD12864_Cmd(LCD_CMD_CONTRAST_ONE_LEVEL); //粗调对比度,可设置范围0x20~0x27
LCD12864_Cmd(LCD_CMD_CONTRAST_TWO_CMD); //微调对比度
LCD12864_Cmd(0x3a); //0x1a,微调对比度的值,可设置范围0x00~0x3f
LCD12864_Cmd(LCD_CMD_BIAS_SET); // 1/9偏压比(bias)
LCD12864_Cmd(LCD_CMD_LINE_NORMAL); //行扫描顺序:从上到下
LCD12864_Cmd(LCD_CMD_ROW_ADDR_REVERSE); //列扫描顺序:从左到右
LCD12864_Cmd(LCD_CMD_BEGIN_LINE); //起始行:第一行开始
LCD12864_Cmd(LCD_CMD_DISPLAY_ON); //打开显示
LCD12864_Cmd(LCD_CMD_DISPLAY_POINT_NORMAL);
LCD12864_Cmd(LCD_CMD_DISPLAY_NORMAL); //设置为正显模式
SoftWaitUs(150); // 150 us
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-31732-9.html
活着还有什么意思