init
This commit is contained in:
112
OLED显示屏/AbsDrive_OLED.h
Normal file
112
OLED显示屏/AbsDrive_OLED.h
Normal file
@@ -0,0 +1,112 @@
|
||||
/*文件:AbsDrive_OLED.h
|
||||
* 作者:你遇了我
|
||||
* 联系:321640253@qq.com
|
||||
* 描述:抽象硬件OLED屏幕,只需要实现指定的抽象函数,即可使用
|
||||
* 使用:1、在配置区选择配置
|
||||
2、按照配置到AbsDrive_OLED.c实现抽象函数
|
||||
*/
|
||||
|
||||
#ifndef __ABS_DRIVE_OLED_H
|
||||
#define __ABS_DRIVE_OLED_H
|
||||
|
||||
#include "stdlib.h"
|
||||
#include "stdint.h"
|
||||
#include "spi.h"
|
||||
#include "gpio.h"
|
||||
#include "main.h"
|
||||
|
||||
|
||||
/**************************配置区***************************/
|
||||
/*----1、选择驱动芯片----*/
|
||||
/*
|
||||
根据你的OLED屏幕选择其中一种
|
||||
目前支持SSD1306、SSD1315
|
||||
*/
|
||||
#define ABS_SSD1306
|
||||
//#define ABS_SSD1315
|
||||
|
||||
|
||||
/*----2、选择你实现的通信方式----*/
|
||||
/*根据你所实现的抽象函数的方式选择:4线SPI、3线SPI、软件IIC、硬件IIC
|
||||
*/
|
||||
#define ABSDrive_4SPI
|
||||
//#define ABSDrive_3SPI
|
||||
//#define ABSDrive_SoftIIC
|
||||
//#define ABSDrive_HardIIC
|
||||
|
||||
/*----3、是否启动延时函数----*/
|
||||
/*不需要延时函数时可以注释掉*/
|
||||
#define Enable_ABS_Delay
|
||||
|
||||
|
||||
/**************************配置区***************************/
|
||||
|
||||
|
||||
#define OLED_RES_Clr() HAL_GPIO_WritePin(oled_res_GPIO_Port,oled_res_Pin,GPIO_PIN_RESET)//RES
|
||||
#define OLED_RES_Set() HAL_GPIO_WritePin(oled_res_GPIO_Port,oled_res_Pin,GPIO_PIN_SET)
|
||||
|
||||
|
||||
#define OLED_CMD 0
|
||||
#define OLED_DATA 1
|
||||
|
||||
/*************************数据定义区*****************************/
|
||||
|
||||
#define u8 uint8_t
|
||||
#define u16 uint16_t
|
||||
#define u32 uint32_t
|
||||
|
||||
/*
|
||||
*OLED的状态
|
||||
*/
|
||||
typedef enum _OLED_STATE{
|
||||
ABS_OLED_OK =0x00U, //状态正确
|
||||
ABS_OLED_ERROR =0x01U, //状态异常
|
||||
} AbsDriveOLED_STATE;
|
||||
/*************************数据定义区*****************************/
|
||||
|
||||
/***********************命令区*****************************/
|
||||
#if (defined ABS_SSD1306)||(defined ABS_SSD1315)
|
||||
//设置类
|
||||
//-------基本命令--------------
|
||||
#define CMD_OFF_OLED 0xAE //关闭OLED屏幕
|
||||
#define CMD_ON_OLED 0xAF //打开OLED屏幕
|
||||
#define CMD_EntireDisplay_OLED 0xA4 //整个屏幕显示(按照GRAM内容)
|
||||
#define CMD_EntireDisplayOnRAM_OLED 0xA5 //整个屏幕显示(忽视GRAM内容全部亮起)
|
||||
#define CMD_Normal_display_OLED 0xA6 //正常显示
|
||||
#define CMD_Inverse_display_OLED 0xA7 //反向显示
|
||||
#define CMD_Set_Contrast_Control_OLED 0x81 //设置对比度
|
||||
|
||||
//-------寻址设置命令----------
|
||||
#define CMD_LColAddr_OLED 0x00 //设置列地址开始的起始地址,低位寻址,次命令仅适用于页寻址模式
|
||||
#define CMD_HColAddr_OLED 0x10 //设置列地址开始的起始地址,高位寻址,次命令仅适用于页寻址模式
|
||||
#define CMD_Memory_Addr_Mode_OLED 0x20 //设置内存寻址模式,A[1,0],00b水平寻址,01b垂直寻址,11b重置寻址模式
|
||||
#define CMD_SetColumnAddr_OLED 0x21 //设置列开始和结束地址
|
||||
|
||||
#endif
|
||||
|
||||
void OLED_ClearPoint(u8 x,u8 y);
|
||||
void OLED_ColorTurn(u8 i);
|
||||
void OLED_DisplayTurn(u8 i);
|
||||
void I2C_Start(void);
|
||||
void I2C_Stop(void);
|
||||
void I2C_WaitAck(void);
|
||||
//void Send_Byte(u8 dat);
|
||||
//void OLED_WR_Byte(u8 dat,u8 mode);
|
||||
void OLED_DisPlay_On(void);
|
||||
void OLED_DisPlay_Off(void);
|
||||
void OLED_Refresh(void);
|
||||
void OLED_Clear(void);
|
||||
void OLED_DrawPoint(u8 x,u8 y,u8 t);
|
||||
void OLED_DrawLine(u8 x1,u8 y1,u8 x2,u8 y2,u8 mode);
|
||||
void OLED_DrawCircle(u8 x,u8 y,u8 r);
|
||||
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size1,u8 mode);
|
||||
void OLED_ShowChar6x8(u8 x,u8 y,u8 chr,u8 mode);
|
||||
void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 size1,u8 mode);
|
||||
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size1,u8 mode);
|
||||
void OLED_ShowChinese(u8 x,u8 y,u8 num,u8 size1,u8 mode);
|
||||
void OLED_ScrollDisplay(u8 num,u8 space,u8 mode);
|
||||
void OLED_ShowPicture(u8 x,u8 y,u8 sizex,u8 sizey,u8 BMP[],u8 mode);
|
||||
void ABS_OLED_Init(void);
|
||||
|
||||
#endif //__ABS_DRIVE_OLED_H
|
||||
|
||||
Reference in New Issue
Block a user