标题: OKdo E1开发板驱动双色OLED屏显示 [打印本页]
作者: jinglixixi 时间: 2020-11-3 00:24
标题: OKdo E1开发板驱动双色OLED屏显示
OKdo E1开发板是一款以硬币大小而为人称道的开发板,它体积小巧那自然要为它配置一块同样小巧的显示屏才称得上是绝配,下面就通过I/O口来模拟I2C通讯了,使得OLED屏能够显示出信息来。
OLED屏与MCU的连接关系为:
SCL---PIO0_7
SDA---PIO1_0
相关引脚输出高低电平的语句定义:
#define OLED_SCLK_Clr() GPIO_PinWrite(GPIO, 0u, 7u, 0)
#define OLED_SCLK_Set() GPIO_PinWrite(GPIO, 0u, 7u, 1)
#define OLED_SDIN_Clr() GPIO_PinWrite(GPIO, 1u, 0u, 0)
#define OLED_SDIN_Set() GPIO_PinWrite(GPIO, 1u, 0u, 1)
OLED屏引脚配置函数:
- void app_oled_init(void)
- {
- gpio_pin_config_t gpioPinConfig;
- gpioPinConfig.pinDirection = kGPIO_DigitalOutput;
- gpioPinConfig.outputLogic = 1u;
- GPIO_PinInit (GPIO, 0u, 7u, &gpioPinConfig);
- GPIO_PinInit (GPIO, 1u, 0u, &gpioPinConfig);
- }
复制代码
OLED屏初始化函数:
- void OLED_Init(void)
- {
- Write_IIC_Command(0xAE); //display off
- Write_IIC_Command(0x20); //Set Memory Addressing Mode
- Write_IIC_Command(0x10);
- Write_IIC_Command(0xb0);//Set Page Start Address for Page Addressing Mode,0-7
- Write_IIC_Command(0xc8);//Set COM Output Scan Direction
- Write_IIC_Command(0x00);//---set low column address
- Write_IIC_Command(0x10);//---set high column address
- Write_IIC_Command(0x40);//--set start line address
- Write_IIC_Command(0x81);//--set contrast control register
- Write_IIC_Command(0xdf);
- Write_IIC_Command(0xa1);//--set segment re-map 0 to 127
- Write_IIC_Command(0xa6);//--set normal display
- Write_IIC_Command(0xa8);//--set multiplex ratio(1 to 64)
- Write_IIC_Command(0x3F);//
- Write_IIC_Command(0xa4);//0xa4,Output follows RAM content;0xa5,Output ignores RAM content
- Write_IIC_Command(0xd3);//-set display offset
- Write_IIC_Command(0x00);//-not offset
- Write_IIC_Command(0xd5);//--set display clock divide ratio/oscillator frequency
- Write_IIC_Command(0xf0);//--set divide ratio
- Write_IIC_Command(0xd9);//--set pre-charge period
- Write_IIC_Command(0x22); //
- Write_IIC_Command(0xda);//--set com pins hardware configuration
- Write_IIC_Command(0x12);
- Write_IIC_Command(0xdb);//--set vcomh
- Write_IIC_Command(0x20);//0x20,0.77xVcc
- Write_IIC_Command(0x8d);//--set DC-DC enable
- Write_IIC_Command(0x14);//
- Write_IIC_Command(0xaf);//--turn on oled panel
- }
复制代码
OLED屏显示主程序:
- int main(void)
- {
- POWER_SetBodVbatLevel(kPOWER_BodVbatLevel1650mv, kPOWER_BodHystLevel50mv, false);
- CLOCK_EnableClock(kCLOCK_Gpio0);
- CLOCK_EnableClock(kCLOCK_Gpio1);
- BOARD_BootClockFROHF96M();
- app_oled_init();
- OLED_Init();
- OLED_Clear();
- OLED_ShowString(0,0,"OKDOE1 TEST",16);
- OLED_ShowString(0,2,"OLED Display",16);
- OLED_ShowString(0,4,"jinglixixi",16);
- OLED_ShowString(0,6,"2020.11.2",16);
- while (1);
- }
复制代码
经程序的编译下载,其运行效果如图所示。 OLED屏显示效果
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |