鸿蒙系统 OLED屏幕驱动
鸿蒙系统 OLED屏幕驱动
鸿蒙系统 OLED屏幕驱动Hi3861 OLED驱动
可以看附件视频详细说明
Hispark WiFi开发套件又提供一个oled屏幕,但是鸿蒙源码中没有这个屏幕的驱动,我们需要自己去移植。
经过一晚上的调试,现在终于在鸿蒙系统上实现OLED屏幕的显示了,效果如下:
这里记录一下移植的过程
(1)编写驱动代码
首先在
└── applications
└── sample
└── wifi-iot
└── app
新增应用:oled_demo,源码已经放在附件,大家自己下载。
(2)设置I2C引脚复用
确定i2c引脚,查看原理图,可以看到OLED屏幕使用到的是I2C0,引脚是GPIO13、GPIO14
所以我们需要修改源码,在vendor\hisi\hi3861\hi3861\app\wifiiot_app\init\app_io_init.c 文件中,初始化I2C引脚的代码修改成如下:
#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
复制代码
(3)开启I2C功能
修改文件:vendor\hisi\hi3861\hi3861\build\config\usr_config.mk
增加 CONFIG_I2C_SUPPORT=y
以上修改变完成了,重新编译即可看到OLED能成功驱动。
(4)OLED屏幕驱动讲解
入口函数:
void my_oled_demo(void)
{
//初始化,我们使用的是I2C0
hi_i2c_init(HI_I2C_IDX_0, 100000); /* baudrate: 100000 */
led_init();
OLED_ColorTurn(0);//0正常显示,1 反色显示
OLED_displayTurn(0);//0正常显示 1 屏幕翻转显示
OLED_ShowString(8,16,"hello world",16);
OLED_Refresh();
}
复制代码
I2C写函数:
hi_u32 my_i2c_write(hi_i2c_idx id, hi_u16 device_addr, hi_u32 send_len)
{
hi_u32 status;
hi_i2c_data es8311_i2c_data = { 0 };
es8311_i2c_data.send_buf = g_send_data;
es8311_i2c_data.send_len = send_len;
status = hi_i2c_write(id, device_addr, &es8311_i2c_data);
if (status != HI_ERR_SUCCESS) {
printf("===== Error: I2C write status = 0x%x! =====\r\n", status);
return status;
}
return HI_ERR_SUCCESS;
}
鸿蒙系统 OLED屏幕驱动相关教程
-
用python编写名片系统时遇到的import f.py导入命令,与from f.py
用python编写名片系统时遇到的import f.py导入命令,与from f.py import *区别及问题 先说问题 :用import f.py导入命令时,在card_main.py中,会先出现提示用户进行操作的信息,再出现之后的功能函数(如功能【1】新建卡片),如图1 但是用from f.py import
-
Linux系统下安装配置 OpenLDAP + phpLDAPadmin
Linux系统下安装配置 OpenLDAP + phpLDAPadmin 实验环境: 操作系统:Centos 7.4 服务器ip:192.168.3.41 运行用户:root 网络环境:Internet LDAP(轻量级目录访问协议)是一个能实现提供被称为目录服务的信息服务,也是一套用户认证体系系统;一般在大型企业
-
重装windows后ubuntu系统启动菜单不见的修复方法
重装windows后ubuntu系统启动菜单不见的修复方法 为什么80%的码农都做不了架构师? 当我们原来系统中有ubuntu的时候,如果我们重装或安装新的windows系统时,会发现ubuntu系统启动菜单不见啦,我们重现安装ubuntu系统也可以解决这个问题,但是我们以前在ubunt
-
操作系统的运行机制与体系结构(操作系统4)
操作系统的运行机制与体系结构(操作系统4) 操作系统的运行机制与体系结构 视频链接地址:https://www.bilibili.com/video/BV1YE411D7nH/?spm_id_from=333.788.videocard.2 操作系统 系列文章目录 操作系统的运行机制与体系结构 前言 1 操作系统的运行机制 2
-
阿里云视觉AI五天训练营之搭建多场景人脸口罩检测系统(附效果动
阿里云视觉AI五天训练营之搭建多场景人脸口罩检测系统(附效果动图) 搭建多场景人脸口罩检测系统-基于阿里云视觉智能平台 最后一次的课了,就不辣么水了。这次的试验目的是将用户上传的图片(例如在公共场合的监控照片)进行识别,返回当前图片中的人数、(
-
从零开始编写minecraft光影包(5)简单光照系统,曝光调节,色调
从零开始编写minecraft光影包(5)简单光照系统,曝光调节,色调映射与饱和度 完整资源: 我的Github地址 前情提要: 从0开始编写minecraft光影包(0)GLSL,坐标系,光影包结构介绍 从零开始编写minecraft光影包(1)基础阴影绘制 从零开始编写minecraft光影
-
【Linux操作系统课堂笔记4】Vi和Vim编辑器及常用命令
【Linux操作系统课堂笔记4】Vi和Vim编辑器及常用命令 文章目录: 一:介绍 二:Vi和Vim常用的三种模式 1.命令行模式/一般模式/正常模式 2.插入模式/编辑模式/输入模式 3.命令行模式/底线命令模式 三:Vi和Vim模式的相互转换 创建/打开文件 四:Vi和Vim的快捷
-
Linux系统编程 —线程属性
Linux系统编程 —线程属性 在之前的章节中,我们在调用pthread_create函数创建线程时,第二个参数(即线程属性)都是设为NULL,即使用默认属性。一般情况下,使用默认属性已经可以解决我们开发过程中的大多数问题。 但是,有时项目中我们对线程会有些特殊的要