BLE_TYQ_CH584M/StdPeriphDriver/inc/CH58x_lcd.h

103 lines
3.9 KiB
C
Raw Permalink Normal View History

2024-12-02 16:26:55 +08:00
/********************************** (C) COPYRIGHT *******************************
2025-02-21 14:38:41 +08:00
* File Name : CH58x_lcd.h
2024-12-02 16:26:55 +08:00
* Author : WCH
* Version : V1.0
* Date : 2022/12/05
2025-02-21 14:38:41 +08:00
* Description : head file(ch585/ch584)
2024-12-02 16:26:55 +08:00
********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/
2025-02-21 14:38:41 +08:00
#ifndef __CH58x_LCD_H__
#define __CH58x_LCD_H__
2024-12-02 16:26:55 +08:00
#ifdef __cplusplus
extern "C" {
#endif
2025-02-21 14:38:41 +08:00
#include <CH585SFR.h>
2024-12-02 16:26:55 +08:00
/**
* @brief Configuration LCD driver power
*/
typedef enum
{
LCD_PS_3V3 = 0, // 3.3V <20><><EFBFBD><EFBFBD>
LCD_PS_2V5, // 2.5V <20><><EFBFBD><EFBFBD>
}LCDDrvPowerTypeDef;
/**
* @brief Configuration LCD bias
*/
typedef enum
{
LCD_1_2_Bias = 0, // 2<><32><EFBFBD><EFBFBD>ѹ
LCD_1_3_Bias, // 3<><33><EFBFBD><EFBFBD>ѹ
}LCDBiasTypeDef;
/**
* @brief Configuration LCD duty
*/
typedef enum
{
LCD_1_2_Duty = 0, // COM0-COM1
LCD_1_3_Duty, // COM0-COM2
LCD_1_4_Duty, // COM0-COM3
}LCDDutyTypeDef;
/**
* @brief Configuration LCD scan clk
*/
typedef enum
{
LCD_CLK_256 = 0, // 256Hz
LCD_CLK_512, // 512Hz
LCD_CLK_1000, // 1KHz
LCD_CLK_128 // 128Hz
}LCDSCANCLKTypeDef;
/* LCD<43><44>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
void LCD_Init(LCDDutyTypeDef duty, LCDBiasTypeDef bias);
#define LCD_PowerDown() (R32_LCD_CMD &= ~(RB_LCD_ON | RB_LCD_SYS_EN)) /* LCD<43><44><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>ر<EFBFBD> */
#define LCD_PowerOn() (R32_LCD_CMD |= (RB_LCD_ON | RB_LCD_SYS_EN)) /* LCD<43><44><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><E9BFAA> */
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD>ο<EFBFBD> LCDDrvPowerTypeDef
#define LCD_PowerCfg( d ) (R32_LCD_CMD = (R32_LCD_CMD & ~RB_LCD_VLCD_SEL) | (d<<7)) /* <20><><EFBFBD><EFBFBD>LCD<43><44> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹѡ<D1B9><D1A1> */
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD>ο<EFBFBD> LCDSCANCLKTypeDef
#define LCD_ScanCLKCfg( d ) (R32_LCD_CMD = (R32_LCD_CMD & ~RB_LCD_SCAN_CLK) | (d<<5)) /* <20><><EFBFBD><EFBFBD>LCD<43><44> ɨ<><C9A8>ʱ<EFBFBD><CAB1>ѡ<EFBFBD><D1A1> */
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD>ο<EFBFBD> LCDDutyTypeDef
#define LCD_DutyCfg( d ) (R32_LCD_CMD = (R32_LCD_CMD & ~RB_LCD_DUTY) | (d<<3)) /* <20><><EFBFBD><EFBFBD>LCD<43><44> dutyѡ<79><D1A1> */
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD>ο<EFBFBD> LCDBiasTypeDef
#define LCD_BiasCfg( d ) (R32_LCD_CMD = (R32_LCD_CMD & ~RB_LCD_BIAS) | (d<<2)) /* <20><><EFBFBD><EFBFBD>LCD<43><44> biasѡ<73><D1A1> */
2025-03-27 10:22:43 +08:00
#define LCD_WriteData0( d ) (R32_LCD_RAM0 = (R32_LCD_RAM0 & 0xffffff00) | ((uint32_t)d)) /* <20><><EFBFBD><EFBFBD>LCD0<44><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
#define LCD_WriteData1( d ) (R32_LCD_RAM0 = (R32_LCD_RAM0 & 0xffff00ff) | ((uint32_t)d<<8)) /* <20><><EFBFBD><EFBFBD>LCD1<44><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
#define LCD_WriteData2( d ) (R32_LCD_RAM0 = (R32_LCD_RAM0 & 0xff00ffff) | ((uint32_t)d<<16)) /* <20><><EFBFBD><EFBFBD>LCD2<44><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
#define LCD_WriteData3( d ) (R32_LCD_RAM0 = (R32_LCD_RAM0 & 0x00ffffff) | ((uint32_t)d<<24)) /* <20><><EFBFBD><EFBFBD>LCD3<44><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
2024-12-02 16:26:55 +08:00
2025-03-27 10:22:43 +08:00
#define LCD_WriteData4( d ) (R32_LCD_RAM1 = (R32_LCD_RAM1 & 0xffffff00) | ((uint32_t)d)) /* <20><><EFBFBD><EFBFBD>LCD4<44><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
#define LCD_WriteData5( d ) (R32_LCD_RAM1 = (R32_LCD_RAM1 & 0xffff00ff) | ((uint32_t)d<<8)) /* <20><><EFBFBD><EFBFBD>LCD5<44><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
#define LCD_WriteData6( d ) (R32_LCD_RAM1 = (R32_LCD_RAM1 & 0xff00ffff) | ((uint32_t)d<<16)) /* <20><><EFBFBD><EFBFBD>LCD6<44><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
#define LCD_WriteData7( d ) (R32_LCD_RAM1 = (R32_LCD_RAM1 & 0x00ffffff) | ((uint32_t)d<<24)) /* <20><><EFBFBD><EFBFBD>LCD7<44><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
2024-12-02 16:26:55 +08:00
2025-03-27 10:22:43 +08:00
#define LCD_WriteData8( d ) (R32_LCD_RAM2 = (R32_LCD_RAM2 & 0xffffff00) | ((uint32_t)d)) /* <20><><EFBFBD><EFBFBD>LCD8<44><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
#define LCD_WriteData9( d ) (R32_LCD_RAM2 = (R32_LCD_RAM2 & 0xffff00ff) | ((uint32_t)d<<8)) /* <20><><EFBFBD><EFBFBD>LCD9<44><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
#define LCD_WriteData10( d ) (R32_LCD_RAM2 = (R32_LCD_RAM2 & 0xff00ffff) | ((uint32_t)d<<16)) /* <20><><EFBFBD><EFBFBD>LCD10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
#define LCD_WriteData11( d ) (R32_LCD_RAM2 = (R32_LCD_RAM2 & 0x00ffffff) | ((uint32_t)d<<24)) /* <20><><EFBFBD><EFBFBD>LCD11<31><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
2025-02-21 14:38:41 +08:00
2025-03-27 10:22:43 +08:00
#define LCD_WriteData12( d ) (R32_LCD_RAM3 = (R32_LCD_RAM3 & 0xffffff00) | ((uint32_t)d)) /* <20><><EFBFBD><EFBFBD>LCD12<31><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
#define LCD_WriteData13( d ) (R32_LCD_RAM3 = (R32_LCD_RAM3 & 0xffff00ff) | ((uint32_t)d<<8)) /* <20><><EFBFBD><EFBFBD>LCD13<31><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
2024-12-02 16:26:55 +08:00
#ifdef __cplusplus
}
#endif
2025-02-21 14:38:41 +08:00
#endif // __CH58x_LCD_H__
2024-12-02 16:26:55 +08:00