查看: 747|回复: 0

[评测分享] 【NXP OKdo E1双核Cortex M33开发板】测评+ OLED屏显示驱动

[复制链接]
  • TA的每日心情
    奋斗
    2023-5-10 20:09
  • 签到天数: 1742 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2020-11-8 00:42:48 | 显示全部楼层 |阅读模式
    分享到:
    有了前面控制LED灯的基础,就可以通过I/O口来模拟I2C通讯了,进而控制I2C接口的OLED屏来显示信息。老外的墨水屏咱没有,但我们可以为OKdo E1开发板配上一个双色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屏引脚配置函数:
    1. void app_oled_init(void)
    2. {
    3. gpio_pin_config_t   gpioPinConfig;
    4. gpioPinConfig.pinDirection = kGPIO_DigitalOutput;
    5. gpioPinConfig.outputLogic  = 1u;
    6. GPIO_PinInit (GPIO, 0u, 7u, &gpioPinConfig);
    7. GPIO_PinInit (GPIO, 1u, 0u, &gpioPinConfig);
    8. }
    复制代码

    OLED屏初始化函数:
    1. void OLED_Init(void)
    2. {
    3. Write_IIC_Command(0xAE); //display off
    4. Write_IIC_Command(0x20); //Set Memory Addressing Mode
    5. Write_IIC_Command(0x10);
    6. Write_IIC_Command(0xb0);//Set Page Start Address for Page Addressing Mode,0-7
    7. Write_IIC_Command(0xc8);//Set COM Output Scan Direction
    8. Write_IIC_Command(0x00);//---set low column address
    9. Write_IIC_Command(0x10);//---set high column address
    10. Write_IIC_Command(0x40);//--set start line address
    11. Write_IIC_Command(0x81);//--set contrast control register
    12. Write_IIC_Command(0xdf);
    13. Write_IIC_Command(0xa1);//--set segment re-map 0 to 127
    14. Write_IIC_Command(0xa6);//--set normal display
    15. Write_IIC_Command(0xa8);//--set multiplex ratio(1 to 64)
    16. Write_IIC_Command(0x3F);//
    17. Write_IIC_Command(0xa4);//0xa4,Output follows RAM content;0xa5,Output ignores RAM content
    18. Write_IIC_Command(0xd3);//-set display offset
    19. Write_IIC_Command(0x00);//-not offset
    20. Write_IIC_Command(0xd5);//--set display clock divide ratio/oscillator frequency
    21. Write_IIC_Command(0xf0);//--set divide ratio
    22. Write_IIC_Command(0xd9);//--set pre-charge period
    23. Write_IIC_Command(0x22); //
    24. Write_IIC_Command(0xda);//--set com pins hardware configuration
    25. Write_IIC_Command(0x12);
    26. Write_IIC_Command(0xdb);//--set vcomh
    27. Write_IIC_Command(0x20);//0x20,0.77xVcc
    28. Write_IIC_Command(0x8d);//--set DC-DC enable
    29. Write_IIC_Command(0x14);//
    30. Write_IIC_Command(0xaf);//--turn on oled panel
    31. }
    复制代码

    OLED屏显示主程序:
    1. int main(void)
    2. {
    3. POWER_SetBodVbatLevel(kPOWER_BodVbatLevel1650mv, kPOWER_BodHystLevel50mv, false);
    4. CLOCK_EnableClock(kCLOCK_Gpio0);
    5. CLOCK_EnableClock(kCLOCK_Gpio1);
    6. BOARD_BootClockFROHF96M();
    7. app_oled_init();
    8. OLED_Init();
    9. OLED_Clear();
    10. OLED_ShowString(0,0,"OKDOE1 TEST",16);
    11. OLED_ShowString(0,2,"OLED Display",16);
    12. OLED_ShowString(0,4,"jinglixixi",16);
    13. OLED_ShowString(0,6,"2020.11.2",16);
    14. while (1);
    15. }
    复制代码

    经程序的编译下载,其运行效果如图所示。
    1.jpg
    OLED屏显示效果
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-26 16:25 , Processed in 0.115985 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.