123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- /**
- ******************************************************************************
- * @file st7735.h
- * @author MCD Application Team
- * @brief This file contains all the functions prototypes for the st7735.c
- * driver.
- ******************************************************************************
- * @attention
- *
- * <h2><center>© Copyright (c) 2018 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
- /* Define to prevent recursive inclusion -------------------------------------*/
- #ifndef ST7735_H
- #define ST7735_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Includes ------------------------------------------------------------------*/
- #include "st7735_reg.h"
- #include <stddef.h>
- /** @addtogroup BSP
- * @{
- */
- /** @addtogroup Components
- * @{
- */
- /** @defgroup ST7735 ST7735
- * @{
- */
- /** @defgroup ST7735_Exported_Types Exported Types
- * @{
- */
- typedef int32_t (*ST7735_Init_Func) (void);
- typedef int32_t (*ST7735_DeInit_Func) (void);
- typedef int32_t (*ST7735_GetTick_Func) (void);
- typedef int32_t (*ST7735_Delay_Func) (uint32_t);
- typedef int32_t (*ST7735_WriteReg_Func) (uint8_t, uint8_t*, uint32_t);
- typedef int32_t (*ST7735_ReadReg_Func) (uint8_t, uint8_t*);
- typedef int32_t (*ST7735_SendData_Func) (uint8_t*, uint32_t);
- typedef int32_t (*ST7735_RecvData_Func) (uint8_t*, uint32_t);
- typedef struct
- {
- ST7735_Init_Func Init;
- ST7735_DeInit_Func DeInit;
- uint16_t Address;
- ST7735_WriteReg_Func WriteReg;
- ST7735_ReadReg_Func ReadReg;
- ST7735_SendData_Func SendData;
- ST7735_RecvData_Func RecvData;
- ST7735_GetTick_Func GetTick;
- } ST7735_IO_t;
- typedef struct
- {
- ST7735_IO_t IO;
- st7735_ctx_t Ctx;
- uint8_t IsInitialized;
- } ST7735_Object_t;
- typedef struct
- {
- /* Control functions */
- int32_t (*Init )(ST7735_Object_t*, uint32_t, uint32_t);
- int32_t (*DeInit )(ST7735_Object_t*);
- int32_t (*ReadID )(ST7735_Object_t*, uint32_t*);
- int32_t (*DisplayOn )(ST7735_Object_t*);
- int32_t (*DisplayOff )(ST7735_Object_t*);
- int32_t (*SetBrightness )(ST7735_Object_t*, uint32_t);
- int32_t (*GetBrightness )(ST7735_Object_t*, uint32_t*);
- int32_t (*SetOrientation )(ST7735_Object_t*, uint32_t);
- int32_t (*GetOrientation )(ST7735_Object_t*, uint32_t*);
- /* Drawing functions*/
- int32_t ( *SetCursor ) (ST7735_Object_t*, uint32_t, uint32_t);
- int32_t ( *DrawBitmap ) (ST7735_Object_t*, uint32_t, uint32_t, uint8_t *);
- int32_t ( *FillRGBRect ) (ST7735_Object_t*, uint32_t, uint32_t, uint8_t*, uint32_t, uint32_t);
- int32_t ( *DrawHLine ) (ST7735_Object_t*, uint32_t, uint32_t, uint32_t, uint32_t);
- int32_t ( *DrawVLine ) (ST7735_Object_t*, uint32_t, uint32_t, uint32_t, uint32_t);
- int32_t ( *FillRect ) (ST7735_Object_t*, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
- int32_t ( *GetPixel ) (ST7735_Object_t*, uint32_t, uint32_t, uint32_t*);
- int32_t ( *SetPixel ) (ST7735_Object_t*, uint32_t, uint32_t, uint32_t);
- int32_t ( *GetXSize ) (ST7735_Object_t*, uint32_t *);
- int32_t ( *GetYSize ) (ST7735_Object_t*, uint32_t *);
- }ST7735_LCD_Drv_t;
- /**
- * @}
- */
- /** @defgroup ST7735_Exported_Constants Exported Constants
- * @{
- */
- /**
- * @brief ST7735 Size
- */
- #define ST7735_OK (0)
- #define ST7735_ERROR (-1)
- /**
- * @brief ST7735 ID
- */
- #define ST7735_ID 0x5CU
- /**
- * @brief ST7735 Size
- */
- #define ST7735_WIDTH 80U
- #define ST7735_HEIGHT 160U
- /**
- * @brief LCD_OrientationTypeDef
- * Possible values of Display Orientation
- */
- #define ST7735_ORIENTATION_PORTRAIT 0x00U /* Portrait orientation choice of LCD screen */
- #define ST7735_ORIENTATION_PORTRAIT_ROT180 0x01U /* Portrait rotated 180° orientation choice of LCD screen */
- #define ST7735_ORIENTATION_LANDSCAPE 0x02U /* Landscape orientation choice of LCD screen */
- #define ST7735_ORIENTATION_LANDSCAPE_ROT180 0x03U /* Landscape rotated 180° orientation choice of LCD screen */
- /**
- * @brief Possible values of pixel data format (ie color coding)
- */
- #define ST7735_FORMAT_RBG444 0x03U /* Pixel format chosen is RGB444 : 12 bpp */
- #define ST7735_FORMAT_RBG565 0x05U /* Pixel format chosen is RGB565 : 16 bpp */
- #define ST7735_FORMAT_RBG666 0x06U /* Pixel format chosen is RGB666 : 18 bpp */
- #define ST7735_FORMAT_DEFAULT ST7735_FORMAT_RBG565
- /**
- * @}
- */
- /** @defgroup ST7735_Exported_Functions Exported Functions
- * @{
- */
- int32_t ST7735_RegisterBusIO (ST7735_Object_t *pObj, ST7735_IO_t *pIO);
- int32_t ST7735_Init(ST7735_Object_t *pObj, uint32_t ColorCoding, uint32_t Orientation);
- int32_t ST7735_DeInit(ST7735_Object_t *pObj);
- int32_t ST7735_ReadID(ST7735_Object_t *pObj, uint32_t *Id);
- int32_t ST7735_DisplayOn(ST7735_Object_t *pObj);
- int32_t ST7735_DisplayOff(ST7735_Object_t *pObj);
- int32_t ST7735_SetBrightness(ST7735_Object_t *pObj, uint32_t Brightness);
- int32_t ST7735_GetBrightness(ST7735_Object_t *pObj, uint32_t *Brightness);
- int32_t ST7735_SetOrientation(ST7735_Object_t *pObj, uint32_t Orientation);
- int32_t ST7735_GetOrientation(ST7735_Object_t *pObj, uint32_t *Orientation);
- int32_t ST7735_SetCursor(ST7735_Object_t *pObj, uint32_t Xpos, uint32_t Ypos);
- int32_t ST7735_DrawBitmap(ST7735_Object_t *pObj, uint32_t Xpos, uint32_t Ypos, uint8_t *pBmp);
- int32_t ST7735_FillRGBRect(ST7735_Object_t *pObj, uint32_t Xpos, uint32_t Ypos, uint8_t *pData, uint32_t Width, uint32_t Height);
- int32_t ST7735_DrawHLine(ST7735_Object_t *pObj, uint32_t Xpos, uint32_t Ypos, uint32_t Length, uint32_t Color);
- int32_t ST7735_DrawVLine(ST7735_Object_t *pObj, uint32_t Xpos, uint32_t Ypos, uint32_t Length, uint32_t Color);
- int32_t ST7735_FillRect(ST7735_Object_t *pObj, uint32_t Xpos, uint32_t Ypos, uint32_t Width, uint32_t Height, uint32_t Color);
- int32_t ST7735_SetPixel(ST7735_Object_t *pObj, uint32_t Xpos, uint32_t Ypos, uint32_t Color);
- int32_t ST7735_GetPixel(ST7735_Object_t *pObj, uint32_t Xpos, uint32_t Ypos, uint32_t *Color);
- int32_t ST7735_GetXSize(ST7735_Object_t *pObj, uint32_t *XSize);
- int32_t ST7735_GetYSize(ST7735_Object_t *pObj, uint32_t *YSize);
- extern ST7735_LCD_Drv_t ST7735_LCD_Driver;
- /**
- * @}
- */
- #ifdef __cplusplus
- }
- #endif
- #endif /* ST7735_H */
- /**
- * @}
- */
- /**
- * @}
- */
- /**
- * @}
- */
- /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|