/** ********************************************************************************************************************** * @file oled.c * @author ������ * @version V0.1.0 * @date 2021-3-4 * @brief OLED ���������к���ԭ�� ********************************************************************************************************************** * ********************************************************************************************************************** */ /* Define to prevent recursive inclusion -----------------------------------------------------------------------------*/ #ifndef __OLED_H #define __OLED_H /* Includes ----------------------------------------------------------------------------------------------------------*/ #include <stdint.h> /* OLED �����ӿڶ��� */ #define OLED_IIC_INTERFACE 0 // iic �ӿ� #define OLED_SPI_INTERFACE 1 // spi �ӿ� #define _DRIVE_INTERFACE_TYPE OLED_SPI_INTERFACE /* OLED ��ʽ����������� */ #define _USE_OLED_PRINTF #ifdef _USE_OLED_PRINTF /************************************************* Printf ������ڶ��� ************************************************/ #define OLED_PRINT_X 64 #define OLED_PRINT_Y 0 #define OLED_PRINT_WIDTH (128 - OLED_PRINT_X) #define OLED_PRINT_HIGH (64 - OLED_PRINT_Y) #define OLED_PRINT_FONT FONT_12X12 /************************************************* Printf ������ڶ��� ************************************************/ #endif // _USE_OLED_PRINTF #if _DRIVE_INTERFACE_TYPE == OLED_IIC_INTERFACE /*************************************************** OLED IIC �˿ڶ��� ************************************************/ #define OLED_SCLK_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_3)//SCL IIC�ӿڵ�ʱ���ź� #define OLED_SCLK_Set() GPIO_SetBits(GPIOB,GPIO_Pin_3) #define OLED_SDIN_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_5)//SDA IIC�ӿڵ������ź� #define OLED_SDIN_Set() GPIO_SetBits(GPIOB,GPIO_Pin_5) /*************************************************** OLED IIC �˿ڶ��� ************************************************/ #else /*************************************************** OLED SPI �˿ڶ��� ************************************************/ #define OLED_DC_Clr() GPIO_ResetBits(GPIOA, GPIO_Pin_11) #define OLED_DC_Set() GPIO_SetBits(GPIOA, GPIO_Pin_11) #define OLED_RST_Clr() GPIO_ResetBits(GPIOA, GPIO_Pin_15) #define OLED_RST_Set() GPIO_SetBits(GPIOA, GPIO_Pin_15) #define OLED_DIN_Clr() GPIO_ResetBits(GPIOB, GPIO_Pin_5) #define OLED_DIN_Set() GPIO_SetBits(GPIOB, GPIO_Pin_5) #define OLED_CLK_Clr() GPIO_ResetBits(GPIOB, GPIO_Pin_3) #define OLED_CLK_Set() GPIO_SetBits(GPIOB, GPIO_Pin_3) /*************************************************** OLED SPI �˿ڶ��� ************************************************/ #endif /* Exported types ----------------------------------------------------------------------------------------------------*/ typedef unsigned char oledsize_t; /** * @brief ������ɫ */ typedef enum { OLED_BLACK = 0, OLED_WHITE = 0xff, }eOledcolor; /** * @brief �����Сö�ٶ��� * @note ö��ֵ�� sg_tFontCfgTable ����ֵ��Ӧ */ typedef enum { FONT_12X12, /*!< �ֳ�����: 12 x 12, Ӣ�ij����� 6 x 12 */ FONT_16X16, /*!< �ֳ�����: 16 x 16, Ӣ�ij����� 8 x 16 */ FONT_24X24, /*!< �ֳ�����: 24 x 24, Ӣ�ij����� 12 x 24 */ FONT_32X32, /*!< �ֳ�����: 32 x 32, Ӣ�ij����� 16 x 32 */ FONT_MAX_NUM }efontSize; /* Exported constants ------------------------------------------------------------------------------------------------*/ /* Exported macro ----------------------------------------------------------------------------------------------------*/ /* Exported functions ------------------------------------------------------------------------------------------------*/ /* OLED ��ʼ������ ****************************************************************************************************/ extern void OLED_Init(void); /* OLED ���ƺ��� ******************************************************************************************************/ extern void OLED_DisplayOn(void); extern void OLED_DisplayOff(void); /* ����/���㺯�� ******************************************************************************************************/ extern void OLED_DrawPoint(oledsize_t x, oledsize_t y, eOledcolor color); extern void OLED_DrawRoughPoint(oledsize_t x, oledsize_t y, eOledcolor color, uint8_t size); extern eOledcolor OLED_ReadPoint(oledsize_t x, oledsize_t y); /* OLED �������� ******************************************************************************************************/ extern void OLED_Clear(uint8_t color); extern void OLED_SetFill(oledsize_t sx, oledsize_t sy, oledsize_t width, oledsize_t high, eOledcolor color); /* ����������� *******************************************************************************************************/ extern void OLED_SyncScreen(oledsize_t sx, oledsize_t sy, oledsize_t width, oledsize_t high); extern void OLED_ShowTask(void); extern void OLED_SetScreenOffset(oledsize_t x, oledsize_t y, oledsize_t width, oledsize_t high, uint8_t dir, uint8_t pixels); /* ��ͼ�κ��� *********************************************************************************************************/ extern void OLED_DrawLine(oledsize_t sx, oledsize_t sy, oledsize_t width, oledsize_t high, uint8_t size); extern void OLED_DrawRectangle(oledsize_t sx, oledsize_t sy, oledsize_t width, oledsize_t high, uint8_t size); extern void OLED_DrawCircle(oledsize_t x, oledsize_t y, oledsize_t radius, uint8_t size); /* �����ı�/���ֺ��� **************************************************************************************************/ extern void OLED_SetColor(eOledcolor backColor, eOledcolor pointColor); extern void OLED_SetText(oledsize_t x, oledsize_t y, const char *pszStr, uint8_t isMultiLine, efontSize size); extern void OLED_SetIntegerNum(oledsize_t x, oledsize_t y, int32_t num, uint8_t len, uint8_t zero, efontSize size); extern void OLED_SetFloatNum(oledsize_t x, oledsize_t y, float num, uint8_t intLen, uint8_t decLen, uint8_t zero, efontSize size); /* ��ʽ��������� *****************************************************************************************************/ extern void OLED_XYPrintf(oledsize_t x, oledsize_t y, uint8_t isMultiLine, efontSize size, const char *format, ...); extern void OLED_Printf(const char *format, ...); #endif // __OLED_H