[文章]【HarmonyOS_Hi3861学习笔记】【连载】--点亮oled

阅读量0
1
2
`

本来是元旦期间就要更新的,结果懒了一下,出去玩了。就拖到现在才完成oled部分内容。
    根据在这块板子上用harmony写oled程序比用stm32驱动还要方便点。主要是从例程中移植过来的。官方i2c驱动例程的路径为vendor/hisi/hi3861/hi3861/app/demo/src/app_demo_i2c.c  参考了这个文件里面的i2c驱动部分。移植了官网资料里面提供的oled驱动。具体路径如下:HiSpark_WiFi_IoT智能开发套件_原理图硬件资料数据手册HiSpark_WiFi_IoT_OLED_VER.AcSRC 。
查看原理图,可以看到,oled用的i2c接口,具体为i2c0_SDA--GPIO13、i2c0_SCL--GPIO14。需要在app_io_init.c中初始化i2c接口,才可以使用i2c部分。

[attach]990550[/attach]
i2c初始化
  1.     /* I2C MUX: */
  2. #ifdef CONFIG_I2C_SUPPORT
  3.     /* I2C IO复用也可以选择3/4; 9/10,根据产品设计选择 */
  4.     hi_io_set_func(HI_IO_NAME_GPIO_13, HI_IO_FUNC_GPIO_13_I2C0_SDA);
  5.     hi_io_set_func(HI_IO_NAME_GPIO_14, HI_IO_FUNC_GPIO_14_I2C0_SCL);
  6. #endif
复制代码
然后添加oled的demo程序,包括oled的初始化,显示字符,显示数字等等函数。具体可以参考驱动。
  1. void oled_demo(void)
  2. {
  3.     hi_i2c_init(HI_I2C_IDX_0, 100000);
  4.     led_init();

  5.     OLED_ColorTurn(0);      //0正常显示,1 反色显示
  6.     OLED_DisplayTurn(0);    //0正常显示 1 屏幕翻转显示

  7.     OLED_ShowString(8,16,"hello harmony",16);
  8.     OLED_ShowNum(8,32,1234567890,10,16);

  9.     OLED_Refresh();

  10. }

  11. SYS_RUN(oled_demo);
复制代码
最后还要注意添加BUILD.gn以及修改app文件夹中的BUILD.gn,添加新增的oled部分的路径。
来张显示效果图


`oled显示效果图\n
oled显示效果图

回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友