盐城网站建设哪家快,安徽省建设法治协会网站,专业做网站多少钱,wordpress创意点赞7.1实验效果
Hispark WiFi开发套件又提供一个oled屏幕#xff0c;但是鸿蒙源码中没有这个屏幕的驱动#xff0c;我们需要自己去移植。
以下是移植效果#xff1a; 接口#xff1a;I2C
使用引脚#xff1a;HI_IO_NAME_GPIO_13 、 HI_IO_NAME_GPIO_14
7.2代码
这里我直…7.1实验效果
Hispark WiFi开发套件又提供一个oled屏幕但是鸿蒙源码中没有这个屏幕的驱动我们需要自己去移植。
以下是移植效果 接口I2C
使用引脚HI_IO_NAME_GPIO_13 、 HI_IO_NAME_GPIO_14
7.2代码
这里我直接用许思维老师之前移植好的代码不过由于鸿蒙版本更新过快许思维老师之前的代码是基于1.0版本直接拿到3.0以上版本编译会出错这里我修改了编译错误。放在我的仓库中。
整个代码目录如下
主要是3个文件夹
1examples
测试代码里面有一个ssd1306_demo.c文件是我们的入口函数。
2libm_port
从musl libc中抽取的sin和cos的实现。
3ssd1306
相关驱动代码部分。
接下来我们来重点看下代码部分
1初始化入口函数
入口函数是 Ssd1306TestDemo 它创建了Ssd1306TestTask线程所以我们重点看 Ssd1306TestTask线程。
void Ssd1306TestTask(void* arg)
{(void) arg;//先初始化引脚IoTGpioInit(HI_IO_NAME_GPIO_13);IoTGpioInit(HI_IO_NAME_GPIO_14);//将引脚功能设置为I2C引脚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);//初始化I2C0IoTI2cInit(0, OLED_I2C_BAUDRATE);//WatchDogDisable();usleep(20*1000);//初始化SSD1306ssd1306_Init();//全部清空ssd1306_Fill(Black);ssd1306_SetCursor(0, 0);//显示 Hello HarmonyOS!ssd1306_DrawString(Hello HarmonyOS!, Font_7x10, White);uint32_t start HAL_GetTick();ssd1306_UpdateScreen();uint32_t end HAL_GetTick();printf(ssd1306_UpdateScreen time cost: %d ms.\r\n, end - start);TestDrawChinese1();TestDrawChinese2();TestGetTick();while (1) {//进行所有用例测试ssd1306_TestAll();usleep(10000);}
}2I2C发送函数
我们要操作OLED屏幕就需要使用I2C发送数据给OLED屏幕代码使用
ssd1306_SendData函数发送I2C数据该函数原型如下直接调用的hi3861的i2c接口函数
static uint32_t ssd1306_SendData(uint8_t* data, size_t size)
{int id SSD1306_I2C_IDX;return IoTI2cWrite(id, SSD1306_I2C_ADDR, data, size);
}3修改 usr_config.mk文件
注意默认代码是没有打开i2c功能的直接编译会提示相关的i2c函数没有定义我们需要打开i2c的功能具体是修改usr_config.mk文件 目前版本3.1的路径是
device\soc\hisilicon\hi3861v100\sdk_liteos\build\config\usr_config.mk
但是代码结构可能会调整路径可能会变。
增加 CONFIG_I2C_SUPPORTy 为了能让大家更好的学习鸿蒙HarmonyOS NEXT开发技术这边特意整理了《鸿蒙开发学习手册》共计890页希望对大家有所帮助https://qr21.cn/FV7h05
《鸿蒙开发学习手册》
如何快速入门https://qr21.cn/FV7h05
基本概念构建第一个ArkTS应用…… 开发基础知识https://qr21.cn/FV7h05
应用基础知识配置文件应用数据管理应用安全管理应用隐私保护三方应用调用管控机制资源分类与访问学习ArkTS语言…… 基于ArkTS 开发https://qr21.cn/FV7h05
Ability开发UI开发公共事件与通知窗口管理媒体安全网络与链接电话服务数据管理后台任务(Background Task)管理设备管理设备使用信息统计DFX国际化开发折叠屏系列…… 鸿蒙开发面试真题含参考答案https://qr18.cn/F781PH 鸿蒙开发面试大盘集篇共计319页https://qr18.cn/F781PH
1.项目开发必备面试题 2.性能优化方向 3.架构方向 4.鸿蒙开发系统底层方向 5.鸿蒙音视频开发方向 6.鸿蒙车载开发方向 7.鸿蒙南向开发方向