HiHope开发者社区
直播中

梁泽逍

未满1年用户 3经验值
擅长:嵌入式技术
私信 关注
[问答]

在OpenHarmony 3.1版本中,润和hispark hi3861智能家居套件I2C驱动OLED屏幕的驱动如何改写?

目前找到的例程都是基于OpenHARMony1.0或者2.0的,目前使用OpenHarmony3.1.4 release版本的系统后,ssd1306 OLED屏幕的例程和代码已经调不通了,请问如何解决?

我做了以下操作:
1、首先打开I2C功能的配置文件地址已经改为:
device\soc\hisilicon\hi3861v100\sdk_liteos\build\config\usr_config.mk
在这个文件中打开了I2C功能(图片1)

2、依赖头文件的路径已经更改,更新的在"//base/iot_hardware/peripheral/interfaces/kits",因此在BUILD.gn中更改了include_dirs(图片2)

3、对应的代码include文件名也更新为(图片3)

4、外层BUILD.gn文件也更改为了当前demo入口

但是问题来了,编译的过程中报错,称ssd1306.c的SSD1306_I2C_IDX定义的变量未声明(图片4),我查找资料发现,OH1.0中定义为WIFI_IOT_I2C_IDX_0(也是例程中的写法),OH2.0中定义为HI_I2C_IDX_0(图片5),可是现在目标系统为OH3.1,找不到应该定义为什么值,求指导!



  • 打开I2C
  • 更新头文件名称
  • 更新头文件地址
  • 报错信息
  • SSD1306_I2C_IDX的声明

回帖(1)

李涛

2024-7-11 18:02:57
在OpenHarmony 3.1版本中,润和hispark hi3861智能家居套件I2C驱动OLED屏幕的驱动改写需要遵循以下步骤:

1. **确认I2C驱动支持**:首先确保你的硬件平台(hi3861)支持I2C,并且I2C驱动已经集成到OpenHarmony系统中。

2. **修改配置文件**:根据你的描述,你已经打开了I2C功能的配置文件。确保`%usr_config.mk`文件中的I2C相关宏定义被正确设置。

3. **更新依赖和头文件路径**:你已经更新了依赖头文件的路径,这是正确的。确保`BUILD.gn`文件中的`include_dirs`包含了所有必要的路径,以便编译器可以找到所需的头文件。

4. **修改代码中的include文件名**:根据你的描述,你已经更新了代码中的include文件名。确保这些文件名与实际的文件路径和名称相匹配。

5. **编写或更新驱动代码**:根据OpenHarmony 3.1版本的API变化,你可能需要更新或重写驱动代码以适应新的API。这可能包括:
   - 使用新的I2C API进行通信。
   - 确保驱动代码遵循OpenHarmony 3.1的编码规范和最佳实践。

6. **测试驱动**:在完成驱动代码的编写或更新后,进行充分的测试以确保驱动能够正常工作。这包括:
   - 基本功能测试,如初始化、显示文本、图形等。
   - 性能测试,确保驱动在高负载下仍能正常工作。
   - 兼容性测试,确保驱动在不同版本的OpenHarmony上都能正常工作。

7. **调试和优化**:在测试过程中,如果发现问题,需要对驱动代码进行调试和优化。这可能包括:
   - 修复代码中的错误。
   - 优化性能,如减少延迟、提高刷新率等。

8. **文档和示例**:为了帮助其他开发者更好地理解和使用你的驱动,编写详细的文档和示例代码是非常重要的。

9. **提交和维护**:将你的驱动代码提交到OpenHarmony的代码库,并在必要时进行维护和更新。

请注意,由于OpenHarmony的版本更新可能会引入API的变更,因此需要密切关注OpenHarmony的官方文档和更新日志,以确保你的驱动代码与最新版本的系统兼容。如果遇到具体的问题或错误,可以查阅OpenHarmony的开发者社区或提交issue以寻求帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分