欢迎光临~啄木鸟电子科技

新闻中心

OLED - 函数

///////////////////////////////////////////////////////////////////////////////////	 
//  功能描述   : OLED 4接口演示例程(STMSTM8S103K3系列)
//              说明: 
//              ----------------------------------------------------------------
//              GND    电源地
//              VCC  接5V或3.3v电源
//              D0   PC1
//              D1   PC2
//              RES  PC3
//              DC   PC4
//              CS   PC5              
//              ----------------------------------------------------------------
//******************************************************************************/
// 防 重复 定义
// #ifndef 判断后面的宏名是标识符,	如没有定义,就定义他;

#ifndef __OLED_H__
#define __OLED_H__

////////////////////////////////////////////////////////////////////////////////////////
// 引用 头文件;
//#include <iostm8s103k3.h>  // 引用系统 头文件;


////////////////////////////////////////////////////////////////////////////////////////
// 数据类型 定义;
#define u8  uint8_t
#define u16 uint16_t
#define u32 uint32_t

typedef unsigned char    uint8_t;
typedef unsigned int     uint16_t;
typedef unsigned long    uint32_t;

#define uchar unsigned char
#define uint  unsigned int


////////////////////////////////////////////////////////////////////////////////////////

#define OLED_CMD   0	//写命令 0	 宏定义,相当在遇到 OLED_CMD 时,看成 0;
#define OLED_DATA  1	//写数据 1
#define OLED_MODE  0  	//模式;  0	 

// 位定义, 控制信号口;
/*
#define OLED_CS         PC_ODR_ODR1	//片选
#define OLED_RST        PC_ODR_ODR3	//复位
#define OLED_DC         PC_ODR_ODR2	//数据/命令控制
#define OLED_SCL        PC_ODR_ODR5	//时钟 // D0(SCLK)
#define OLED_SDIN	PC_ODR_ODR6        // D1(MOSI) 数据 
*/

/**************** 片选 PC2 *********************/
#define OLED_CS        		PC_ODR_ODR2	    //片选
#define OLED_CS_0  		OLED_CS = 0      // 指定 端口,指定管脚;
#define OLED_CS_1  		OLED_CS = 1

/**************** 数据/命令 PC3 *********************/
#define OLED_DC       		PC_ODR_ODR3		//数据 | 命令控制
#define OLED_DC_0 		OLED_DC = 0
#define OLED_DC_1 		OLED_DC = 1

/**************** 复位 PC4 *********************/
#define OLED_RST       		PC_ODR_ODR4		//复位
#define OLED_RST_0 		OLED_RST = 0
#define OLED_RST_1 		OLED_RST = 1

/**************** 时钟 PC5 *********************/
//#define OLED_SCL 	    	PC_ODR_ODR5	//时钟 D0(SCLK)
#define OLED_SCL 	    	PC_ODR_ODR6	//时钟 D0(SCLK)
#define OLED_SCLK_0 		OLED_SCL = 0  // 指定端口 管脚 写入 低电平;
#define OLED_SCLK_1 		OLED_SCL = 1  // 指定端口 管脚 写入 高电平;

/****************数据 PC6 *********************/
//#define OLED_SDIN	    	PC_ODR_ODR6 //D1(MOSI) 数据 
#define OLED_SDIN	    	PC_ODR_ODR5 //D1(MOSI) 
#define OLED_SDIN_0 		OLED_SDIN = 0
#define OLED_SDIN_1 		OLED_SDIN = 1

/********************************************************************/

//OLED模式设置
//0:4线串行模式
//1:并行8080模式

#define SIZE        	16
#define XLevelL		0x02
#define XLevelH		0x10
#define Max_Column	128
#define Max_Row		64
#define	Brightness	0xFF 
#define X_WIDTH 	128
#define Y_WIDTH 	64
	    						  
//-----------------OLED端口定义----------------  					   

void delay_ms(unsigned int ms);	  		     

//OLED控制用函数

void OLED_Port_Init(void);
void OLED_Reset(void);

void OLED_ShowNum(u8 x, u8 y, u32 num, u8 len, u8 size2);
void OLED_ShowNum16X32(u8 x , u8 y , u8 no);
void OLED_ShowNum32X32(u8 x , u8 y , u8 no);

void OLED_WR_Byte(u8 dat,u8 cmd);	    
void OLED_Display_On(void);
void OLED_Display_Off(void);	   							   		    
void OLED_Init(void);
void OLED_Clear(void);

void OLED_Set_Pos(u8 x, u8 y);
void OLED_DrawPoint(u8 x, u8 y, u8 t);
void OLED_DrawBMP(u8 x0, u8 y0, u8 x1, u8 y1, const u8 BMP[]);

void OLED_Fill(u8 x1,u8 y1,u8 x2,u8 y2,u8 dot);

void OLED_ShowChar(u8 x,u8 y,u8 chr);
void OLED_ShowString(u8 x, u8 y, u8 *p);

void OLED_ShowCHinese(u8 x, u8 y, u8 no);




#endif  // 结束 #ifnde 

联系我们

联系人:客服在线

手机:全工:13903011251

电话:李R:13530006400

邮箱:729986191@qq.com

地址: GUANGDONG PROVINCE

用手机扫描二维码关闭
二维码