OLED 屏有多种形式,既有单色、双色屏,也有彩色屏;既有I2C接口的,也有SPI接口的。 本次使用的是SPI接口的彩色屏,其分辨率是160*80点像素,16位色彩。 OLED 屏与AC7811的连接关系如下: SCL ---PA5 SDA ---PA6 RES ---PA7 DC ---PD14 CS ---PD15 BLK ---F12
定义相关引脚输出高低电平的语句为: #define OLED_SCLK_Clr()HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5, GPIO_PIN_RESET) //CLK #define OLED_SCLK_Set()HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5, GPIO_PIN_SET)
#define OLED_SDIN_Clr()HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6, GPIO_PIN_RESET) //DIN #define OLED_SDIN_Set()HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6, GPIO_PIN_SET)
#define OLED_RST_Clr()HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7, GPIO_PIN_RESET) //RES #define OLED_RST_Set()HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7, GPIO_PIN_SET)
#define OLED_DC_Clr()HAL_GPIO_WritePin(GPIOD,GPIO_PIN_14, GPIO_PIN_RESET) //DC #define OLED_DC_Set()HAL_GPIO_WritePin(GPIOD,GPIO_PIN_14, GPIO_PIN_SET)
#define OLED_CS_Clr() HAL_GPIO_WritePin(GPIOD,GPIO_PIN_15, GPIO_PIN_RESET) //CS #define OLED_CS_Set() HAL_GPIO_WritePin(GPIOD,GPIO_PIN_15, GPIO_PIN_SET)
#define OLED_BLK_Clr() HAL_GPIO_WritePin(GPIOF,GPIO_PIN_12, GPIO_PIN_RESET) //BLK #define OLED_BLK_Set() HAL_GPIO_WritePin(GPIOF,GPIO_PIN_12, GPIO_PIN_SET)
OLED屏的初始化函数为:
图片显示函数为: - void LCD_ShowPicture1(u16 x1,u16 y1,u16 x2,u16 y2)
- {
- int i;
- LCD_Address_Set(x1,y1,x2,y2);
- for(i=0;i<3808;i++)
- {
- LCD_WR_DATA8(gImage_jsj[i*2]);
- LCD_WR_DATA8(gImage_jsj[i*2+1]);
- }
- }
-
- void LCD_ShowPicture2(u16 x1,u16 y1,u16 x2,u16 y2)
- {
- int i;
- LCD_Address_Set(x1,y1,x2,y2);
- for(i=0;i< 12800;i++)
- {
- LCD_WR_DATA8(gImage_moled[i*2]);
- LCD_WR_DATA8(gImage_moled[i*2+1]);
- }
- }
复制代码
实现显示测试的主程序为: - int main()
- {
- float t=0;
- u8 i;
- HAL_Init();
- SystemClock_Config();
- Lcd_Init();
- LCD_Clear(0x043C);
- LCD_ShowPicture1(0,0,55,67);
- HAL_Delay(1000);
- LCD_ShowPicture2(0,0,159,79);
- while(1);
- }
复制代码
显示计算机图标
显示彩色图片
工程代码:
|