摘要:本文簡單介紹如何操作I2C去顯示oled屏幕,并且實現動畫播放、中文英文顯示、繪圖等功能
適合群體:適用于潤和Hi3861開發板,L0輕量系統驅動開發
7.1 實驗效果
Hispark WiFi開發套件又提供一個oLED屏幕,但是鴻蒙源碼中沒有這個屏幕的驅動,我們需要自己去移植。
以下是移植效果:
接口:I2C
使用引腳:HI_IO_NAME_GPIO_13 、 HI_IO_NAME_GPIO_14
7.2 代碼
這里我直接用許思維老師之前移植好的代碼,不過由于鴻蒙版本更新過快,許思維老師之前的代碼是基于1.0版本,直接拿到3.0以上版本編譯會出錯,這里我修改了編譯錯誤。放在我的倉庫中。
整個代碼目錄如下:
主要是3個文件夾:
(1)examples
測試代碼,里面有一個ssd1306_demo.c文件,是我們的入口函數。
(2)libm_port
從musl libc中抽取的`sin`和`cos`的實現。
(3)ssd1306
相關驅動代碼部分。
接下來我們來重點看下代碼部分:
(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);
//初始化I2C0
Ioti2cInit(0, OLED_I2C_BAUDRATE);
//WatchDogDisable();
usleep(20*1000);
//初始化SSD1306
ssd1306_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. ", end - start);
TestDrawChinese1();
TestDrawChinese2();
TestGetTick();
while (1) {
//進行所有用例測試
ssd1306_TestAll();
usleep(10000);
}
}
(2)I2C發送函數
我們要操作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)的路徑是:
devicesochisiliconhi3861v100sdk_liteosuildconfigusr_config.mk
但是代碼結構可能會調整,路徑可能會變。
增加 CONFIG_I2C_SUPPORT=y
原文標題:OpenHarmony輕量系統開發【7】驅動之I2C顯示OLED屏幕
文章出處:【微信公眾號:HarmonyOS官方合作社區】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅
-
OLED
+關注
關注
119文章
6200瀏覽量
224207 -
驅動
+關注
關注
12文章
1840瀏覽量
85291 -
屏幕
+關注
關注
6文章
1199瀏覽量
55800
原文標題:OpenHarmony輕量系統開發【7】驅動之I2C顯示OLED屏幕
文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發燒友開源社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論