电子产业一站式赋能平台

PCB联盟网

搜索
查看: 1339|回复: 0
收起左侧

【HarmonyOS_Hi3861学习笔记】【连载】--点亮oled

[复制链接]

2607

主题

2607

帖子

7472

积分

高级会员

Rank: 5Rank: 5

积分
7472
发表于 2021-1-5 11:56:02 | 显示全部楼层 |阅读模式
【HarmonyOS_Hi3861学习笔记】【连载】--点亮oled,   
本帖最后由 风语者199104 于 2021-1-5 09:54 编辑



本来是元旦期间就要更新的,结果懒了一下,出去玩了。就拖到现在才完成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.A\c\SRC 。

查看原理图,可以看到,oled用的i2c接口,具体为i2c0_SDA--GPIO13、i2c0_SCL--GPIO14。需要在app_io_init.c中初始化i2c接口,才可以使用i2c部分。





i2c初始化



  •     /* I2C MUX: */
      
  • #ifdef CONFIG_I2C_SUPPORT
      
  •     /* I2C IO复用也可以选择3/4; 9/10,根据产品设计选择 */
      
  •     hi_io_set_func(HI_IO_NAME_GPIO_13, HI_IO_FUNC_GPIO_13_I2C0_SDA);
      
  •     hi_io_set_func(HI_IO_NAME_GPIO_14, HI_IO_FUNC_GPIO_14_I2C0_SCL);
      
  • #endif

复制代码 然后添加oled的demo程序,包括oled的初始化,显示字符,显示数字等等函数。具体可以参考驱动。



  • void oled_demo(void)
      
  • {
      
  •     hi_i2c_init(HI_I2C_IDX_0, 100000);
      
  •     led_init();
      

  •   
  •     OLED_ColorTurn(0);      //0正常显示,1 反色显示
      
  •     OLED_displayTurn(0);    //0正常显示 1 屏幕翻转显示
      

  •   
  •     OLED_ShowString(8,16,“hello harmony“,16);
      
  •     OLED_ShowNum(8,32,1234567890,10,16);
      

  •   
  •     OLED_Refresh();
      

  •   
  • }
      

  •   
  • SYS_RUN(oled_demo);

复制代码 最后还要注意添加BUILD.gn以及修改app文件夹中的BUILD.gn,添加新增的oled部分的路径。

来张显示效果图



IMG_20210104_225104.jpg (1.99 MB, 下载次数: 0)

下载附件  保存到相册  

oled显示效果图

昨天 22:55 上传
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表