NULL
This commit is contained in:
244
user/Device/oled.h
Executable file
244
user/Device/oled.h
Executable file
@@ -0,0 +1,244 @@
|
||||
#ifndef __OLED_H
|
||||
#define __OLED_H
|
||||
|
||||
#include "stdlib.h"
|
||||
#include "stdint.h"
|
||||
|
||||
//
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// <20><> <20><> <20><> : oled.c
|
||||
// <20><> <20><> <20><> : v1.0
|
||||
// <20><> <20><> :
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : 2025-11-14
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> :
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : OLED I2C<32>ӿ<EFBFBD><D3BF><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
||||
// ˵<><CBB5>:
|
||||
// ----------------------------------------------------------------
|
||||
// GND <20><>Դ<EFBFBD><D4B4>
|
||||
// VCC 3.3v<EFBFBD><EFBFBD>Դ
|
||||
// D0 P2.0<EFBFBD><EFBFBD>SCL<EFBFBD><EFBFBD>
|
||||
// D1 P1.4<EFBFBD><EFBFBD>SDA<EFBFBD><EFBFBD>
|
||||
// RES P1.6<EFBFBD><EFBFBD>SPIģ<EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD>IICģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>IICģ<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>
|
||||
// ----------------------------------------------------------------
|
||||
//-----------------OLED<45>˿ڶ<CBBF><DAB6><EFBFBD>----------------
|
||||
|
||||
#define OLED_SCL_Clr() LHL_GPIO_WritePin(I2C_SCL_GPIO, GPIO_PIN_0,GPIO_PIN_RESET)//SCL
|
||||
#define OLED_SCL_Set() LHL_GPIO_WritePin(I2C_SCL_GPIO, GPIO_PIN_0, GPIO_PIN_SET)
|
||||
|
||||
#define OLED_SDA_Clr() LHL_GPIO_WritePin(I2C_SDA_GPIO, I2C_SDA, GPIO_PIN_RESET)//DIN
|
||||
#define OLED_SDA_Set() LHL_GPIO_WritePin(I2C_SDA_GPIO, I2C_SDA, GPIO_PIN_SET)
|
||||
|
||||
#define OLED_RES_Clr() LHL_GPIO_WritePin(I2C_RES_GPIO, I2C_RES, GPIO_PIN_RESET)//RES
|
||||
#define OLED_RES_Set() LHL_GPIO_WritePin(I2C_RES_GPIO, I2C_RES, GPIO_PIN_SET)
|
||||
|
||||
|
||||
#define OLED_CMD 0 //д<><D0B4><EFBFBD><EFBFBD>
|
||||
#define OLED_DATA 1 //д<><D0B4><EFBFBD><EFBFBD>
|
||||
#define u8 uint8_t
|
||||
#define u16 uint16_t
|
||||
#define u32 uint32_t
|
||||
|
||||
// --- 1. <20>Դ涨<D4B4><E6B6A8> ---
|
||||
// ǰ̨<C7B0><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>µ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
extern u8 OLED_GRAM[144][8];
|
||||
// <20><>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ洢<DAB4><E6B4A2>ǰ<EFBFBD><C7B0>Ļ<EFBFBD><C4BB>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ڶԱȲ<D4B1><C8B2><EFBFBD>
|
||||
extern u8 OLED_GRAM_Back[144][8];
|
||||
|
||||
// --- 2. Ӳ<><D3B2><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (I2C/GPIO) ---
|
||||
|
||||
/**
|
||||
* @brief I2C <20><>ʼ<EFBFBD>ź<EFBFBD>
|
||||
*/
|
||||
void I2C_Start(void);
|
||||
|
||||
/**
|
||||
* @brief I2C <20><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
||||
*/
|
||||
void I2C_Stop(void);
|
||||
|
||||
/**
|
||||
* @brief I2C <20>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6>
|
||||
*/
|
||||
void I2C_WaitAck(void);
|
||||
|
||||
/**
|
||||
* @brief I2C д<><D0B4>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>
|
||||
* @param dat Ҫд<D2AA><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
void Send_Byte(u8 dat);
|
||||
|
||||
/**
|
||||
* @brief <20><>OLEDд<44><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param dat Ҫд<D2AA><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param mode ģʽѡ<CABD><D1A1>: 0<><30>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>, 1<><31>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
||||
*/
|
||||
void OLED_WR_Byte(u8 dat, u8 mode);
|
||||
|
||||
/**
|
||||
* @brief OLED <20><><EFBFBD>ż<EFBFBD><C5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
*/
|
||||
void OLED_Init(void);
|
||||
|
||||
|
||||
// --- 3. <20><>Ļ<EFBFBD><C4BB><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD> ---
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD>OLED<45><44>ʾ
|
||||
*/
|
||||
void OLED_DisPlay_On(void);
|
||||
|
||||
/**
|
||||
* @brief <20>ر<EFBFBD>OLED<45><44>ʾ
|
||||
*/
|
||||
void OLED_DisPlay_Off(void);
|
||||
|
||||
/**
|
||||
* @brief <20><>Ļ<EFBFBD><C4BB>ɫ<EFBFBD><C9AB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
||||
* @param i 0:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ, 1:<3A><>ɫ<EFBFBD><C9AB>ʾ
|
||||
*/
|
||||
void OLED_ColorTurn(u8 i);
|
||||
|
||||
/**
|
||||
* @brief <20><>Ļ<EFBFBD><C4BB>ת180<38><30>
|
||||
* @param i 0:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ, 1:<3A><>ת180<38><30>
|
||||
*/
|
||||
void OLED_DisplayTurn(u8 i);
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD><EFBFBD>Դ滺<D4B4><E6BBBA><EFBFBD><EFBFBD> (OLED_GRAM)
|
||||
* @note <20>˺<EFBFBD><CBBA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>ڴ棬<DAB4><E6A3AC><EFBFBD>Զ<EFBFBD>ˢ<EFBFBD>µ<EFBFBD>Ӳ<EFBFBD><D3B2>
|
||||
*/
|
||||
void OLED_Clear(void);
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD>ڴ滺<DAB4><E6BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ھֲ<DABE><D6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param x1 <20><>ʼx<CABC><78><EFBFBD><EFBFBD>
|
||||
* @param y1 <20><>ʼy<CABC><79><EFBFBD><EFBFBD>
|
||||
* @param x2 <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>
|
||||
* @param y2 <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD>
|
||||
* @note <20>˺<EFBFBD><CBBA><EFBFBD>ֻ<EFBFBD><EFBFBD><DEB8>ڴ<EFBFBD><DAB4>е<EFBFBD>OLED_GRAM<41><4D><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Ӳ<EFBFBD><D3B2>
|
||||
*/
|
||||
void OLED_FillArea(u8 x1, u8 y1, u8 x2, u8 y2);
|
||||
|
||||
|
||||
// --- 4. <20><>Ļˢ<C4BB>º<EFBFBD><C2BA><EFBFBD> ---
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD>ݾɽӿڵ<D3BF>ȫ<EFBFBD><C8AB>ˢ<EFBFBD><CBA2>
|
||||
* @note <20><> OLED_GRAM <20><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
void OLED_Refresh(void);
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
|
||||
* @note <20>Ա<EFBFBD> OLED_GRAM <20><> OLED_GRAM_Back<63><6B><EFBFBD><EFBFBD>ˢ<EFBFBD>±仯<C2B1><E4BBAF><EFBFBD>ֽ<EFBFBD>
|
||||
*/
|
||||
void OLED_Refresh_Diff(void);
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD>ݾɽӿڵĵ<DAB5><C4B5><EFBFBD>ˢ<EFBFBD><CBA2>
|
||||
* @param line <20>к<EFBFBD> (0-7)
|
||||
*/
|
||||
void OLED_Refresh_Line(u8 line);
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2>ָ<EFBFBD><D6B8><EFBFBD>У<EFBFBD><D0A3><EFBFBD>Ч<EFBFBD><D0A7>
|
||||
* @param line <20>к<EFBFBD> (0-7)
|
||||
* @note <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޱ仯<DEB1><E4BBAF><EFBFBD><EFBFBD><F2B2BBBD><EFBFBD> I2C <20><><EFBFBD><EFBFBD>
|
||||
*/
|
||||
void OLED_Refresh_Line_Diff(u8 line);
|
||||
|
||||
|
||||
// --- 5. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD> ---
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD>
|
||||
* @param x 0~127
|
||||
* @param y 0~63
|
||||
* @param t 1:<3A><><EFBFBD><EFBFBD>, 0:<3A><><EFBFBD><EFBFBD>
|
||||
*/
|
||||
void OLED_DrawPoint(u8 x, u8 y, u8 t);
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD>
|
||||
* @param x1,y1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param x2,y2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param mode 1:<3A><><EFBFBD><EFBFBD>, 0:<3A><><EFBFBD><EFBFBD>
|
||||
*/
|
||||
void OLED_DrawLine(u8 x1, u8 y1, u8 x2, u8 y2, u8 mode);
|
||||
|
||||
/**
|
||||
* @brief <20><>Բ
|
||||
* @param x,y Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param r Բ<>İ뾶
|
||||
*/
|
||||
void OLED_DrawCircle(u8 x, u8 y, u8 r);
|
||||
|
||||
|
||||
// --- 6. <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʾ ---
|
||||
|
||||
/**
|
||||
* @brief <20><>ָ<EFBFBD><D6B8>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ַ<EFBFBD>
|
||||
* @param x,y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param chr Ҫ<><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD>
|
||||
* @param size1 ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6x8 / 12x12 / 16x16 / 24x24 (<28>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD>8,12,16,24)
|
||||
* @param mode 0:<3A><>ɫ<EFBFBD><C9AB>ʾ, 1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
||||
*/
|
||||
void OLED_ShowChar(u8 x, u8 y, u8 chr, u8 size1, u8 mode);
|
||||
|
||||
/**
|
||||
* @brief <20><>ʾ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
* @param x,y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param chr <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
|
||||
* @param size1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
||||
* @param mode 0:<3A><>ɫ<EFBFBD><C9AB>ʾ, 1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
||||
*/
|
||||
void OLED_ShowString(u8 x, u8 y, u8 *chr, u8 size1, u8 mode);
|
||||
|
||||
/**
|
||||
* @brief <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
||||
* @param x,y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param num Ҫ<><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param len <20><><EFBFBD>ֵ<EFBFBD>λ<EFBFBD><CEBB>
|
||||
* @param size1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
||||
* @param mode 0:<3A><>ɫ<EFBFBD><C9AB>ʾ, 1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
||||
*/
|
||||
void OLED_ShowNum(u8 x, u8 y, u32 num, u8 len, u8 size1, u8 mode);
|
||||
|
||||
|
||||
// --- 7. <20><EFBFBD><DFBC><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>/ͼƬ/<2F><><EFBFBD><EFBFBD>) ---
|
||||
|
||||
/**
|
||||
* @brief <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
||||
* @param x,y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param num <20><><EFBFBD>ֶ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><>Hzk<7A><6B><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>)
|
||||
* @param size1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С (16, 24, 32, 64)
|
||||
* @param mode 0:<3A><>ɫ<EFBFBD><C9AB>ʾ, 1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
||||
*/
|
||||
void OLED_ShowChinese(u8 x, u8 y, u8 num, u8 size1, u8 mode);
|
||||
|
||||
/**
|
||||
* @brief <20><>ʾͼƬ
|
||||
* @param x,y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param sizex,sizey ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>
|
||||
* @param BMP Ҫд<D2AA><D0B4><EFBFBD><EFBFBD>ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>
|
||||
* @param mode 0:<3A><>ɫ<EFBFBD><C9AB>ʾ, 1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
||||
*/
|
||||
void OLED_ShowPicture(u8 x, u8 y, u8 sizex, u8 sizey, u8 BMP[], u8 mode);
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
||||
* @param num <20><>ʾ<EFBFBD><CABE><EFBFBD>ֵĸ<D6B5><C4B8><EFBFBD>
|
||||
* @param space ÿһ<C3BF><D2BB><EFBFBD><EFBFBD>ʾ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
* @param mode 0:<3A><>ɫ<EFBFBD><C9AB>ʾ, 1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
||||
* @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> while(1) <20><>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾЧ<CABE><D0A7>
|
||||
*/
|
||||
void OLED_ScrollDisplay(u8 num, u8 space, u8 mode);
|
||||
void OLED_FillArea(u8 x1, u8 y1, u8 x2, u8 y2);
|
||||
void OLED_FillRect(u8 x1, u8 y1, u8 x2, u8 y2);
|
||||
void OLED_FillRect_White(u8 x1, u8 y1, u8 x2, u8 y2);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user