Слияние кода завершено, страница обновится автоматически
/**
**********************************************************************************************************************
* @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, 英文长宽比 6 x 12 */
FONT_16X16, /*!< 字长宽比: 16 x 16, 英文长宽比 8 x 16 */
FONT_24X24, /*!< 字长宽比: 24 x 24, 英文长宽比 12 x 24 */
FONT_32X32, /*!< 字长宽比: 32 x 32, 英文长宽比 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
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )