使用hi3861實現在oled1602上面實現掃雷
效果請看:
首先第一步是需要移植i2c顯示屏**
移植請看:
按鍵使用到的是oled上面的兩個按鍵,乙個控制左乙個控制右,hi3861上的按鍵時選中
在oled初始化啟動之後呼叫mineclear_start函式
static_library("mineclear")
mineclear.h
#ifndef mineclear_h
#define mineclear_h
#define mineclear_width 8
#define mineclear_height 16
#define mineclear_max 128
#define mine_max 10
#define adc_length 64
#define vlt_min 100
void mineclear_start(void);
void mine_init(void);
void minemake(void);
#endif
mineclear.c
#include "mineclear.h"
#include #include #include #include "ohos_init.h"
#include "ssd1306.h"
#include #include "cmsis_os2.h"
#include #include #include #include #include "hi_adc.h"
#include "wifiiot_gpio.h"
#include "wifiiot_gpio_ex.h"
#include const uint32_t w = 8, h = 8;
uint8_t fonts[8] = , // 預設狀態
, // 沒有雷
, // 有雷
, // 選中
};
uint32_t mine_data2[mineclear_max];
uint32_t mineclear_data2[mineclear_max];
hi_u16 key_adc_buf[adc_length] = ;
int key_***;
uint32_t key_status = 0;
static uint32_t play_index = 0;
hi_void convert_to_voltage2(hi_u32 data_len)
vlt_val = (vlt_min + vlt_max)/2.0;
if((vlt_val > 0.4) && (vlt_val < 0.6))
if((vlt_val > 0.8) && (vlt_val < 1.1))
if((vlt_val > 0.01) && (vlt_val < 0.3))
}void starttest2(void)
key_adc_buf[i] = data;
}convert_to_voltage2(adc_length);
}void ssd1306_draw(uint32_t x, uint32_t y,int type)
void mineclear_refresh2(uint32_t d)
play_index++;
mouse_move();
}if(key_status == 3)else
//printf("[11]%d\r\n",play_index);
}key_status = 0;
osdelay(10);
}printf("game over\r\n");
return null;
}void mineclear_start(void)
}
鴻蒙硬體HI3861點燈
鴻蒙其他教程請看 建立檔案 build.gn static library mmled mmled.c include mmled.h include include include wifiiot gpio.h include wifiiot gpio ex.h include cmsis os2...
鴻蒙 Hi3861開發環境搭建踩坑記
官方關於開發環境搭建已經說的很清楚了,但是每個人的電腦環境配置都不同,很難說一步順利到位的。linux是用於搭建編譯環境的,windwos主要是搭建乙個燒錄 的環境。不得不說,個人覺得這個windows上的環境整的相對複雜了些,對初學不友好。linux上的坑主要是python3的版本和scons的版...
韋東山鴻蒙開發教程01 鴻蒙介紹
版本 日期作者 說明v1 2020 韋東山韋東山鴻蒙開發手冊 很多人會混淆鴻蒙跟linux的關係。所以鴻蒙要對標的是windows 安卓 ios這類完整系統,而linux只是鴻蒙支援的核心之一。鴻蒙支援多種核心,有linux,也有liteos a。鴻蒙的體系很龐大,看下圖,核心只是其中之一 lite...