You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
1.3 KiB

/*
* Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2025-10-26 Administrator the first version
*/
#ifndef APPLICATIONS_SSD1963_H_
#define APPLICATIONS_SSD1963_H_
#include <rtthread.h>
// ==================== FSMC 地址映射(必须放在头文件中供外部使用)====================
// 假设使用 FSMC Bank1, NE1, A16 作为 RS/DC 控制线
#define SSD1963_BASE_ADDR ((uint32_t)(0x60000000)) // FSMC_NE1
#define LCD_CMD_ADDR (LCD_BASE_ADDR + 0x00000000) // A0 = 0
#define LCD_DATA_ADDR (LCD_BASE_ADDR + 0x00020000) // A0 = 1
// 定义 FSMC 地址:假设使用 Bank1, Base Address 0x60000000,A0 对应地址位1
#define SSD1963_CMD_ADDR *(volatile uint16_t *)(0x60000000)
#define SSD1963_DATA_ADDR *(volatile uint16_t *)(0x60020000)
#define LCD_Write_Cmd(cmd) (*(__IO uint16_t*)LCD_CMD_ADDR = (cmd))
#define LCD_Write_Data(dat) (*(__IO uint16_t*)LCD_DATA_ADDR = (dat))
// 函数声明
void ssd1963_init(void);
void ssd1963_set_window(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
void ssd1963_clear(rt_uint16_t color);
rt_uint16_t ssd1963_get_width(void);
rt_uint16_t ssd1963_get_height(void);
#endif /* APPLICATIONS_SSD1963_H_ */