You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
3.6 KiB
162 lines
3.6 KiB
1 year ago
|
#ifndef BSP_OLED_H
|
||
|
#define BSP_OLED_H
|
||
|
|
||
|
#include "../bsp/bsp_config.h"
|
||
|
#include "msp_uart1.h"
|
||
|
//////#include "msp_iicM2.h"////配置需要的iic接口
|
||
|
|
||
|
//#include "sys.h"
|
||
|
//#include "stdlib.h"
|
||
|
#define u8 unsigned char
|
||
|
#define u32 unsigned int
|
||
|
#define OLED_CMD 0 //写命令
|
||
|
#define OLED_DATA 1 //写数据
|
||
|
#define OLED_MODE 0
|
||
|
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
|
||
|
/// U8 x,y,d;
|
||
|
/// U8 size;
|
||
|
u8 d[10];
|
||
|
|
||
|
|
||
|
}TS_oled_;
|
||
|
extern TS_oled_ ts_oled;
|
||
|
|
||
|
|
||
|
////LoRa手环 BM03_1
|
||
|
///SCL2 P23
|
||
|
///SDA2 P22
|
||
|
|
||
|
|
||
|
sbit OLED_SCL = P2^3; //时钟 D0(SCLK?
|
||
|
sbit OLED_SDIN = P2^2; //D1(MOSI) 数据
|
||
|
|
||
|
#define L0_OLED_io_int(); D_stdIO_P2(BITN3);D_PUON_P2(BITN3);\
|
||
|
D_stdIO_P2(BITN2);D_PUON_P2(BITN2)
|
||
|
|
||
|
|
||
|
#define OLED_CS_Clr() OLED_CS=0
|
||
|
#define OLED_CS_Set() OLED_CS=1
|
||
|
|
||
|
#define OLED_RST_Clr() OLED_RST=0
|
||
|
#define OLED_RST_Set() OLED_RST=1
|
||
|
|
||
|
#define OLED_DC_Clr() OLED_DC=0
|
||
|
#define OLED_DC_Set() OLED_DC=1
|
||
|
|
||
|
#if(MainFre_5M == D_sys_MainFre)
|
||
|
|
||
|
|
||
|
#elif(MainFre_22M == D_sys_MainFre)
|
||
|
|
||
|
|
||
|
#elif(MainFre_27M == D_sys_MainFre)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#elif(MainFre_44M == D_sys_MainFre)
|
||
|
#define D_delay_1 18
|
||
|
#define D_delay_0 8
|
||
|
#define OLED_SCLK_Clr() OLED_SCL=0;Lc_delay_nop(D_delay_1); //76k@44M nop = 10
|
||
|
#define OLED_SCLK_Set() OLED_SCL=1;Lc_delay_nop(D_delay_1);
|
||
|
|
||
|
|
||
|
#define OLED_SDIN_Clr() OLED_SDIN=0;Lc_delay_nop(D_delay_0);
|
||
|
#define OLED_SDIN_Set() OLED_SDIN=1;Lc_delay_nop(D_delay_0);
|
||
|
|
||
|
|
||
|
|
||
|
#else ///MainFre_11M
|
||
|
#define OLED_SCLK_Clr() OLED_SCL=0;Lc_delay_nop(1); //76k@44M nop = 10
|
||
|
#define OLED_SCLK_Set() OLED_SCL=1;Lc_delay_nop(1);
|
||
|
|
||
|
|
||
|
#endif//D_sys_MainFre)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
//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 L1_OLED_WR_1B(unsigned dat,unsigned cmd);
|
||
|
void L2_OLED_Display_On(void);
|
||
|
void L2_OLED_Display_Off(void);
|
||
|
void L1_OLED_Init(void);
|
||
|
|
||
|
void L2_OLED_Clear(void);
|
||
|
|
||
|
void L1_OLED_ShowChar(u8 x,u8 y,u8 chr,u8 Char_Size);
|
||
|
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size);
|
||
|
void L2_OLED_ShowString(u8 x,u8 y, u8 *p,u8 Char_Size);
|
||
|
void L1_OLED_Set_Pos(unsigned char x, unsigned char y);
|
||
|
void OLED_ShowCHinese(u8 x,u8 y,u8 no);
|
||
|
void L1_OLED_ShowCHinese16X16(u8 x,u8 y,u8 no);
|
||
|
|
||
|
void L1_OLED_WR_1D(unsigned char IIC_Command);
|
||
|
void Write_IIC_Data(unsigned char IIC_Data);
|
||
|
void L0_I2C_WR_Byte(unsigned char IIC_Byte);
|
||
|
/*******
|
||
|
|
||
|
void OLED_DrawPoint(u8 x,u8 y,u8 t);
|
||
|
void OLED_Fill(u8 x1,u8 y1,u8 x2,u8 y2,u8 dot);
|
||
|
|
||
|
void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]);
|
||
|
void Delay_50ms(unsigned int Del_50ms);
|
||
|
void Delay_1ms(unsigned int Del_1ms);
|
||
|
void fill_picture(unsigned char fill_Data);
|
||
|
void Picture();
|
||
|
void IIC_Start();
|
||
|
void IIC_Stop();
|
||
|
|
||
|
|
||
|
*********/
|
||
|
|
||
|
extern void L2_OLED_Showint3(u8 x,u8 y,u16 inta,u8 Char_Size);
|
||
|
extern void L2_OLED_init_show(void);
|
||
|
extern void L2_OLED_Show_sint21(u8 x,u8 y,u16 inta,u8 Char_Size);
|
||
|
extern void L2_OLED_Showint2(u8 x,u8 y,u16 inta,u8 Char_Size);
|
||
|
extern void OLED_ShowChar8X16(u8 x,u8 y,u8 chr);
|
||
|
extern void OLED_ShowChar16X32(u8 x,u8 y,u8 chr);
|
||
|
void L2_OLED_Showint2_16X32(u8 x,u8 y,u8 inta);
|
||
|
void L2_OLED_Showint3_16X32(u8 x,u8 y,u8 inta);
|
||
|
|
||
|
void L2_OLED_oht(void);
|
||
|
|
||
|
void L2_OLED_Show_sint21_6X8(u8 x,u8 y,int inta);
|
||
|
|
||
|
#define D_SHOW_oxygen(X) L2_OLED_Showint2_16X32(1,0,X);///L1_OLED_ShowChar(0,2,'X',D_8X16);
|
||
|
#define D_SHOW_heart(H) L2_OLED_Showint3_16X32(5,0,H);///L1_OLED_ShowChar(8*8,2,'H',D_8X16);
|
||
|
|
||
|
|
||
|
#define D_SHOW_tmp(t) L2_OLED_Show_sint21_6X8(48,0,t);///48=8*6
|
||
|
|
||
|
#define D_8X16 8
|
||
|
#define D_16X32 16
|
||
|
#define D_6X8 6
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|