#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