#2020征文-开发板# Hi3861 驱动OLED

幸运兔脚
发布于 2020-12-17 17:51
浏览
1收藏

今天尝试了驱动OLED,本来想自己写IIC的驱动来驱动OLED的,因为以前在STM32上做过IIC的OLED的驱动,但是在润和的gitee上面看到他们又做demo,所以直接拿来用了,省事省时又省力。
废话不多说。
先去gitee上下载源码。
https://gitee.com/hihopeorg/HarmonyOS-ssd1306

 

下载下来放到这个目录中,备用。

#2020征文-开发板# Hi3861 驱动OLED-鸿蒙开发者社区

 我们先来看一下原理图:

#2020征文-开发板# Hi3861 驱动OLED-鸿蒙开发者社区

#2020征文-开发板# Hi3861 驱动OLED-鸿蒙开发者社区

#2020征文-开发板# Hi3861 驱动OLED-鸿蒙开发者社区

从上面的原理图中可以看出,IIC的SDA连接到了GPIO13,SCL链接到了GPIO14。
记住这个,下面会用到。

接下来是修改BUILD.gn文件。
将app文件夹下的BUILD.gn文件修改为如下图所示:

#2020征文-开发板# Hi3861 驱动OLED-鸿蒙开发者社区

然后到目录vendor\hisi\hi3861\hi3861\build\config下找到usr_config.mk,在里面添加CONFIG_I2C_SUPPORT=y

 

再找到vendor\hisi\hi3861\hi3861\app\wifiiot_app\init下找到app_io_init.c,将IIC的端口修改为13(SDA),12(SCL),如下:

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

 

然后编译,下载,就可以用了,如下图:

#2020征文-开发板# Hi3861 驱动OLED-鸿蒙开发者社区

#2020征文-开发板# Hi3861 驱动OLED-鸿蒙开发者社区

#2020征文-开发板# Hi3861 驱动OLED-鸿蒙开发者社区

 

分类
已于2020-12-17 17:51:31修改
1
收藏 1
回复
举报
4条回复
按时间正序
/
按时间倒序
txwtech
txwtech

博主好,鸿蒙开发板hi3861 hispark code 2.0 canary金丝雀版本,gpio如何上拉电阻呢?

code 2.0 LTS支持,canary没有这个功能呢

IoSetPull(WIFI_IOT_IO_NAME_GPIO_8, WIFI_IOT_IO_PULL_UP);

谢谢

回复
2021-8-19 09:15:13
拓维信息Abin
拓维信息Abin 回复了 txwtech
博主好,鸿蒙开发板hi3861 hispark code 2.0 canary金丝雀版本,gpio如何上拉电阻呢? code 2.0 LTS支持,canary没有这个功能呢 IoSetPull(WIFI_IOT_IO_NAME_GPIO_8, WIFI_IOT_IO_PULL_UP); 谢谢

金丝雀版本的代码和之前的1.0的代码不一样了,IoSetPull是1.0代码上的接口,现在2.0代码GPIO上拉电阻接口在hi_io.h中,路径:device\hisilicon\hispark_pegasus\sdk_liteos\include\hi_io.h

 

接口如下:

回复
2021-8-19 09:41:34
txwtech
txwtech 回复了 拓维信息Abin
金丝雀版本的代码和之前的1.0的代码不一样了,IoSetPull是1.0代码上的接口,现在2.0代码GPIO上拉电阻接口在hi_io.h中,路径:device\hisilicon\hispark_pegasus\sdk_liteos\include\hi_io.h 接口如下:

非常感谢,我测试一下呢。^_^

回复
2021-8-19 21:34:55
txwtech
txwtech

请问鸿蒙开发板hi3861有中断引脚吗?

回复
2021-9-21 21:30:36
回复
    相关推荐