前面介绍了OLED屏的驱动显示,但那个屏毕竟是单色的,比较缺少色彩感。为此,又探索着实现了彩色OLED屏的驱动,其显示效果如图所示。 彩色OLED屏显示效果图
该显示屏与MCU的连接关系如下: SCK---- PTE0 SDA---- PTE2 RST ---- PTE1 DC ---- PTE3 CS ---- PTB4 BLK ---- PTB5 各引脚输出高低电平的语句定义为: #define OLED_SCLK_Set() PORT_PTED_PTED0 = 1 #define OLED_SCLK_Clr() PORT_PTED_PTED0 = 0 //PTE0 #define OLED_SDIN_Set() PORT_PTED_PTED2 = 1 #define OLED_SDIN_Clr() PORT_PTED_PTED2 = 0 //PTE2 #define OLED_RST_Set() PORT_PTED_PTED1 = 1 #define OLED_RST_Clr() PORT_PTED_PTED1 = 0 //PTE1 #define OLED_DC_Set() PORT_PTED_PTED3 = 1 #define OLED_DC_Clr() PORT_PTED_PTED3 = 0 //PTE3 #define OLED_CS_Set() PORT_PTBD_PTBD4 = 1 #define OLED_CS_Clr() PORT_PTBD_PTBD4 = 0 //PTB4 #define OLED_BLK_Set() PORT_PTBD_PTBD5 = 1 #define OLED_BLK_Clr() PORT_PTBD_PTBD5 = 0 //PTB5 配置相关引脚为输出功能的函数为: - void app_oled_init(void)
- {
- PORT_PTEOE_PTEOE0 = 1; //PTE0
- PORT_PTEOE_PTEOE1 = 1; //PTE1
- PORT_PTEOE_PTEOE2 = 1; //PTE2
- PORT_PTEOE_PTEOE3 = 1; //PTE3
- PORT_PTBOE_PTBOE4 = 1; //PTB4
- PORT_PTBOE_PTBOE5 = 1; //PTB5
- OLED_BLK_Set();
- }
复制代码
通过I/O口模拟SPI接口发送数据的函数为: - void LCD_Writ_Bus(u8 dat)
- {
- u8 i;
- OLED_CS_Clr();
- OLED_CS_Clr();
- OLED_CS_Clr();
- for(i=0;i<8;i++)
- {
- OLED_SCLK_Clr();
- OLED_SCLK_Clr();
- OLED_SCLK_Clr();
- if(dat & 0x80)
- {
- OLED_SDIN_Set();
- OLED_SDIN_Set();
- OLED_SDIN_Set();
- }
- else
- {
- OLED_SDIN_Clr();
- OLED_SDIN_Clr();
- OLED_SDIN_Clr();
- }
- OLED_SCLK_Set();
- OLED_SCLK_Set();
- OLED_SCLK_Set();
- dat<<=1;
- }
- OLED_CS_Set();
- OLED_CS_Set();
- OLED_CS_Set();
- }
复制代码
显示字符串的函数为: - void LCD_ShowString(u16 x,u16 y,const u8 *p,u16 color)
- {
- while(*p!='\0')
- {
- if(x>LCD_W-16)
- {
- x=0;
- y+=16;
- }
- if(y>LCD_H-16)
- {
- y=0;
- x=0;
- LCD_Clear(RED);
- }
- LCD_ShowChar(x,y,*p,1,color);
- x+=8;
- p++;
- }
- }
复制代码
实现显示效果的主程序为: - void main(void)
- {
- Sys_Init();
- EnableInterrupts;
- MTIM1_Init();
- LED_Init();
- LED_Test();
- DelayMS(1);
- app_oled_init();
- Lcd_Init();
- LCD_Clear(RED);
- BACK_COLOR=BLACK;
- LCD_ShowString(10,16,"2021.3.6",WHITE);
- LCD_ShowString(10,32,"21:46:02",WHITE);
- while(1);
- }
复制代码
|